是可以使用__doPostBack()
还是不推荐使用,因为它是从 ASP.Net 生成的,我们不确定他们是否在 ASP.Net 的下一个版本中更改了它。
5 回答
我会反对它,因为它是内部的东西,ASP.NET
而且从来没有打算直接使用。
相反,当我需要“手动”触发 PostBack 时,我正在做的是使用正确的 OnClick 添加隐藏的“服务器端”按钮:
<asp:Button id="btnDummy" runat="server" OnClick="Foo" style="display: none;" />
那么JS是:
document.getElementById("<%=btnDummy.ClientID%>").click();
这种方式我不在乎回发是如何发生的,我只是触发事件的自然流动。
你不应该直接调用它。您应该使用以下函数生成Page.ClientScript
javascript 调用:
这将确保它始终兼容。
他们可能不会改变它,但为什么直接调用它呢?
我认为触发事件(例如单击按钮)并让控件触发回发是更好的策略。
我确实需要直接触发回发,建议使用十四个描述的 Page.ClientScript 函数。
我认为直接使用它非常好,并且使用它没有失败,毕竟它只是一个javascript函数。
我们到处都在使用它,我无法想象它会从 ASP.NET 中剥离出来。我认为假/隐藏按钮方法即使不是更糟也是一样的。如果您使用假按钮方法,那么您将无法传递 __EVENTARGUMENT。与创建隐藏字段相比,我更喜欢使用 __EVENTARGUMENT 将我的数据传递给服务器,因为与简单地将一些隐藏字段发回我的页面相比,黑客更难攻破。我也不喜欢在页面上创建字段和控件的想法,如果它们甚至不显示的话。我敢肯定,对于新手编码人员来说,假按钮方法可能更容易理解。话虽如此,我正在寻找一种更优雅的方法来解决这个问题,但仍然发现自己在打电话
__doPostBack('%=UpdatePanel.ClientID%>','MyData')
在某些情况下。