PostBackUrl在Html按钮上不可用

Cre*_*esh 5 javascript asp.net postback

我们目前正在执行使用一个跨网页提交PostBackUrlasp:Button:

<asp:Button runat="server" PostBackUrl="processing.aspx" />
Run Code Online (Sandbox Code Playgroud)

生成这个javascript的onclick东西:

<input type="submit" name="ctl03"
    onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('ctl03', ', false, ', 'processing.aspx', false, false))" />
Run Code Online (Sandbox Code Playgroud)

我们希望将其切换为使用普通ol' <button runat="server">(更容易设计),但PostBackUrl不支持它们.

所以我想:如果只是在我的<button>元素中使用所说的JavaScript 怎么办?

<button runat="server" name="ctl03"
    onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('ctl03', '', false, '', 'processing.aspx', false, true))">
</button>
Run Code Online (Sandbox Code Playgroud)

并且waddayaknow,它的工作原理.

有没有人见过这件事呢?如果我继续这样做会给我或我的孩子带来什么伤害?

Can*_*var 5

有趣的问题,我只看了ClientScript的GetPostBackEventReference方法,在这里我得到了:

ASP.NET页面上的按钮:

<button id="Button2" runat="server" name="Button2"></button>
Run Code Online (Sandbox Code Playgroud)

代码隐藏:

PostBackOptions postBackOptions = new PostBackOptions(Button2);
postBackOptions.ActionUrl = "processing.aspx";
Button2.Attributes.Add("onclick", 
    ClientScript.GetPostBackEventReference(postBackOptions));
Run Code Online (Sandbox Code Playgroud)

渲染结果:

<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>
Run Code Online (Sandbox Code Playgroud)

  • 这可能是更好的方式. (2认同)