我有点击功能的两个按钮
第一个在Clicked时被赋予一个变量。
当我点击按钮2时,如何从第一个按钮获取第二个按钮来获取变量?
它似乎不起作用。由于第二个按钮无法识别变量。
由于
编辑:
只是为了澄清我的代码正在生成pdf。按钮1选择要使用的模板的URL。在按钮2(生成pdf的那个)中,我希望它从按钮1获取变量集,以便它知道要使用的模板。
编辑2: 我的代码确实有效,但只有在我没有使用ajax更新面板时。似乎我试图设置的变量没有用AJAX设置
答案 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框架如何处理按钮单击等客户端事件的信息。