[asp.net]为什么 IsPostBack 跳过我的代码呢?

标签: Asp.net HTML C#
发布时间: 2017/3/26 5:12:15
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我要决定使用哪个操作采取究竟在哪儿节开关箱我选择在页中,输入因此当回发它会采取正确的行动。

这是按钮(注意,这不是我,张贴的按钮是在哪里输入编辑凭据的一节)

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

过帐似乎工作,除了一个事实 — 它不运行开关箱...不知道做什么和在做什么错。如果任何人知道我到底做错了它将是伟大:)

解决方法 1:

你挂钩事件在 ASP.Net 中,ASP.Net 为你隐藏的请求和响应的对象并将其包装成了事件驱动的体系结构。所以你不需要处理按钮在 Page_Load 。相反,您需要︰

服务器端按钮 .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 语句将只运行在负载不在回发时

官方微信
官方QQ群
31647020