我正在尝试决定使用switch case哪个操作可以选择在我选择进入页面的部分,因此在回发时会采取正确的操作。
这是按钮(注意,这不是我发布的按钮,而是我输入编辑凭据部分的按钮)
<input type="button" value="Edit credentials" onclick="ShowWindow('#EditDetails', 2500); <%WhatToDo = "ChangeUserInfo";%>" />
代码隐藏:
public string WhatToDo = "";
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
switch (WhatToDo)
{
case "ChangeUserInfo": ChangeUserInfo();
break;
}
}
}
protected void ChangeUserInfo(){ something }
该帖子似乎有效,除了它没有运行开关案例...... 不知道该怎么办,我做错了什么..如果有人知道我做错了什么,那就太好了。)
答案 0 :(得分:2)
您在ASP.Net中挂钩事件,ASP.Net为您隐藏请求和响应对象并将其包装到Event Driven Architecture 。因此,您无需处理Page_Load
中按下的按钮。相反,你需要:
.aspx
中的Server side按钮:
<asp:Button runat="server" ID="cmdResubmit" OnClick="cmdAddBooking_Click" Text="Resubmit" />
和后面代码中与OnClick
同名的事件:
protected void cmdAddBooking_Click(object sender, object e)
{
//put code button code here
SomeClass.value = 123;
SomeClass.StringValue = "1234";
//etc. etc.
}
注意方法的名称匹配:按钮中的OnClick="cmdAddBooking_Click"
!
就是这样。如果您想要多个按钮,请添加多个<asp:Button>
并附加多个事件。
注意:强>
单击按钮也会触发页面加载(以及您的事件),因此Page_Load
事件中的任何代码都会在每次单击按钮时运行。您可以通过将其包装在if (IsPostBack)
中来避免这种情况,这意味着此if
语句中的代码将仅在加载时运行而不在回发上运行