我们目前正在使用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(&quot;Button2&quot;, &quot;&quot;, false, &quot;&quot;, &quot;processing.aspx&quot;, false, true))">
</button>

关于asp.net - Html按钮上不提供PostBackUrl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1291560/

10-09 17:51