为什么 IsPostBack 会跳过我的代码?
Why is IsPostBack skipping through my code?
我正在尝试使用 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 }
张贴似乎有效,除了它不是 运行 开关盒的事实...
不知道该怎么做,我做错了什么。如果有人知道我做错了什么,那就太好了:)
您在 ASP.Net 中连接事件,ASP.Net 为您隐藏请求和响应对象并将其包装到 Event Driven Architecture 中。所以你不需要处理 Page_Load
中按下的按钮。相反,您需要:
Server side 中的按钮 .aspx
:
<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
语句中的代码只会 运行 加载而不是回发
我正在尝试使用 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 }
张贴似乎有效,除了它不是 运行 开关盒的事实... 不知道该怎么做,我做错了什么。如果有人知道我做错了什么,那就太好了:)
您在 ASP.Net 中连接事件,ASP.Net 为您隐藏请求和响应对象并将其包装到 Event Driven Architecture 中。所以你不需要处理 Page_Load
中按下的按钮。相反,您需要:
Server side 中的按钮 .aspx
:
<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
语句中的代码只会 运行 加载而不是回发