PostBackUrl在Html按钮上不可用

时间:2009-08-18 02:54:01

标签: asp.net javascript postback

我们目前正在使用asp:Button的{​​{3}}执行跨页回发:

<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">PostBackUrl),但不支持PostBackUrl

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

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

并且waddayaknow,它的确有效。

以前有没有人见过这个?如果我继续这样做会对我或我的孩子造成什么伤害?

2 个答案:

答案 0 :(得分:5)

有趣的问题,我只看了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>

答案 1 :(得分:0)

“可能不是”,但您依赖于ASP.NET JavaScript的实现细节,这些细节可能会随着时间的推移而发生变化。

我会说实话,我实际上并没有意识到有一个'&lt; button&gt;' HTML元素。