2

我有两个具有点击功能的按钮

单击时,第一个会被分配一个变量。

当我单击按钮 2 时,如何让我的第二个按钮从第一个按钮获取变量?

它似乎不起作用。由于第二个按钮无法识别变量。

谢谢

编辑:

只是为了澄清我的代码正在生成一个pdf。按钮 1 选择要使用的模板的 url。在按钮 2(生成 pdf 的那个)中,我希望它从按钮 1 中获取变量集,以便它知道要使用什么模板。

编辑 2:我的代码确实有效,但仅当我不使用 ajax 更新面板时。似乎我试图设置的变量没有用 AJAX 设置

4

2 回答 2

2

你的按钮有Id,你用他的按钮得到这个按钮Id

注意:您可以添加 runat="server" 以便在服务器端进行可视化

<asp:Button id="Button1"
           Text="Click "
           OnClick="Btn1_Click" 
           runat="server"/>

<asp:Button id="Button2"
           Text="Click "
           OnClick="Btn2_Click" 
           runat="server"/>

void Btn2_Click(Object sender, EventArgs e)
{
    Button1.Text = "test after click on button 2";

    Template = ...;//Set your value
}


void Btn1_Click(Object sender, EventArgs e)
{
    Button2.Text = "test after click on button 1";

    //Here you can get your value after post.
    var result = Template; 
}

它不是主题,但在委托中,您还可以通过传递发件人参数来获得对象按钮。

var button = sender as Button; //You get button who raise event

为了管理Template Path财产。

public string Template
{
   get
   {
      if(ViewState["Template"] != null)
      {       
         return (string)ViewState["Template"];
      }
   }

   set{ViewState["Template"] = value;} 
}
于 2012-09-12T15:35:21.523 回答
-1

我猜您正在查看在 button2 的点击事件中访问变量的值,该变量的值是在 button1 点击事件中设置的?

private string myPrivateString = "";

void Page_Load()//Not sure of correct method signature
{
  if(Page.IsPostBack)
  {
    myPrivateString = Session["myPrivateString"];
  }
}

void Button1_Click(object sender, EventArgs e)
{
  //There will a postback before this gets executed
  myPrivateString = "Value Set From Button 1";
  Session["myPrivateString"] = myPrivateString;
}

void Button2_Click(object sender, EventArgs e)
{
  //There will a postback before this gets executed
  //Accessing myPrivateString here without setting value from session
  //will return empty string as after PostBack its a new page thats rendered.
  myPrivateString = Session["myPrivateString"]; // Or do it in the Page_Load event
}

我想现在你可以在 button2 click 事件中获取值。
另请阅读 ASP.NET 页面生命周期以及 ASP.NET 框架如何处理按钮单击等客户端事件。

于 2012-09-12T16:14:10.640 回答