我们目前正在使用PostBackUrl
的 asp:Button
执行跨页回发:
<asp:Button runat="server" PostBackUrl="processing.aspx" />
生成以下javascript
onclick
的东西:<input type="submit" name="ctl03"
onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('ctl03', ', false, ', 'processing.aspx', false, false))" />
我们希望将其切换为使用普通的
<button runat="server">
(easier to style),但是它们不支持PostBackUrl
。所以我想:如果仅在我的
<button>
元素中使用所说的JavaScript怎么办?<button runat="server" name="ctl03"
onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('ctl03', '', false, '', 'processing.aspx', false, true))">
</button>
和waddayaknow,它有效。
有人看过吗?如果我继续这样做会给我或我的 children 带来什么伤害?
最佳答案
有趣的问题,我只是看了ClientScript的GetPostBackEventReference方法,在这里我得到了:
ASP.NET页上的按钮:
<button id="Button2" runat="server" name="Button2"></button>
在隐藏代码处:
PostBackOptions postBackOptions = new PostBackOptions(Button2);
postBackOptions.ActionUrl = "processing.aspx";
Button2.Attributes.Add("onclick",
ClientScript.GetPostBackEventReference(postBackOptions));
渲染结果:
<button id="Button2" name="Button2"
onclick="WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Button2", "", false, "", "processing.aspx", false, true))">
</button>
关于asp.net - Html按钮上不提供PostBackUrl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1291560/