[英]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.