C#/ asp.net全局变量?

时间:2012-09-12 15:27:53

标签: c# asp.net variables webforms global-variables

我有点击功能的两个按钮

第一个在Clicked时被赋予一个变量。

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

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

由于

编辑:

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

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

2 个答案:

答案 0 :(得分:2)

您的按钮有Id,您可以使用Id

获取此按钮

Nota:您可以添加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; 
}

它不是主题但是在委托中你也可以通过传递发送者参数获得objet按钮。

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;} 
}

答案 1 :(得分:-1)

我猜您正在查看button2的click事件中的变量值,其值是在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点击事件的价值。
另请阅读有关ASP.NET页面生命周期以及ASP.NET框架如何处理按钮单击等客户端事件的信息。