【问题标题】:__doPostBack() function isn't working (asp.net)__doPostBack() 函数不起作用 (asp.net)
【发布时间】:2018-11-28 16:16:03
【问题描述】:

我正在尝试从 JS 代码触发按钮事件。但是 JS 函数 reg() 中的 doPostBack 并不指向 c# 代码。请告诉我有什么问题。 这是我的代码:

<script>
        function reg() {
            var name = document.getElementById('name').value;
            var id = document.getElementById('cnic').value;
            var age = document.getElementById('age').value;
            var ph = document.getElementById('phone').value;
            var pas = document.getElementById('pass').value;
            if (id == '' || pas == '' || age == '' || ph == '' || pas == '')
                window.alert("Write all fields");
            else {
                __doPostBack('<%= Button1.UniqueID%>','')
            }
        }
    </script>  


 <div >
       <asp:Button id="Button1" OnClientClick="reg()" runat="server" Text="Submit"/>
    </div>

这里是与按钮关联的服务器端c#函数:

 protected void Btn_Click(object sender, EventArgs e)
    {
        Button clickedButton = (Button)sender;
        clickedButton.Text = "...button clicked...";
    }

注意:在else 块中,我希望reg() 函数重定向到Btn_Click 函数。

【问题讨论】:

    标签: asp.net onclick postback dopostback


    【解决方案1】:

    我这样做已经有一段时间了,但我认为它需要是服务器 ID,而不是按钮的客户端 ID。

     __doPostBack('<%= button1.UniqueID%>','')
    

    【讨论】:

    • 返回true后如何进入Btn_Click函数?我没有在任何地方指定它。
    • 我已经有一段时间没有做网络表单了,所以我说这可能是不正确的。除了onclientclick 之外,您可能还必须指定onclick 属性。无论如何,答案的第一部分是正确的
    • 我只记得如果您在客户端单击时返回 true,它将转到服务器单击事件,并且由于它是提交按钮,因此将被发布
    • @HashirSarwar 只需在按钮上添加一个 click 属性,然后调用服务器端函数和 return false 在您的 write all fields 行下
    【解决方案2】:

    看起来您在asp:Button 中缺少OnClick

    &lt;asp:Button id="Button1" OnClientClick="reg()" runat="server" Text="Submit" OnClick="Btn_Click"/&gt;

    在 ASP.NET 中有一个内置方法可以生成 __doPostBack() 方法。

    <%= Page.ClientScript.GetPostBackEventReference(Button1, String.Empty) %>; 
    

    如果更改后仍然无法正常工作,我建议您在单击按钮时使用浏览器调试工具(或 Fiddler)的“网络”选项卡检查网络流量。

    还在 reg() 方法中设置一个断点,以查看控件的运行情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多