繁体   English   中英

C#/ asp.net全局变量?

[英]C# / asp.net global Variables?

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

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

单击按钮2时,如何获取第二个按钮以从第一个按钮获取变量?

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

谢谢

编辑:

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

编辑2:我的代码不起作用,但仅当我不使用ajax更新面板时。 似乎我要设置的变量没有用AJAX设置

您的按钮具有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; 
}

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

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

我猜您正在查看的是在button2的click事件中访问变量的值,而在button1的click事件中已为其设置值?

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 Page生命周期以及ASP.NET框架如何处理客户端事件(如按钮单击)的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM