<input type =“button”runat =“server”/>在ASP.NET中不起作用

时间:2010-08-10 01:58:59

标签: javascript asp.net

好吧,这看起来很愚蠢,但在ASP.NET .ascx控件上,我正在尝试使用:

<input type="button" runat="server" />

而不是:

<asp:Button runat="server" />

这对我不起作用。这段代码:

<asp:Button id="btnBuyCat" runat="server" Text="Buy Cat"
ToolTip="Click to buy a cat" OnClick="btnBuyCat_Click" EnableViewState="false" />

呈现以下HTML:(忽略命名容器btw)

<input type="submit" id="btnBuyCat" name="btnBuyCat" value="Shopping Cart"
title="Click to buy a cat" />

除了我希望 input type="button" 而不是input type="submit"之外,这一切都很好。

我试过这段代码:

<input type="button" id="btnBuyCat" name="btnBuyCat" runat="server"
value="Buy Cat" title="Click to buy a cat" onclick="btnBuyCat_Click"
enableviewstate="False" />

并获取此HTML:

<input type="button" id="btnBuyCat" name="btnBuyCat"" value="Buy Cat"
title="Click to buy a cat" onclick="btnBuyCat_Click" />

不幸的是,渲染按钮不起作用。此外,我甚至尝试input type="submit"只是为了检查,但除非我使用<asp:Button>我无法让它工作。我确定它与JavaScript有关。

有没有办法在ASP.NET中使用常规HTML按钮标记和runat="server"

4 个答案:

答案 0 :(得分:16)

您缺少的是UseSubmitBehavior属性,例如,

<asp:Button id="btnBuyCat" runat="server" Text="Buy Cat" 
UseSubmitBehavior="False" ToolTip="Click to buy a cat" 
OnClick="btnBuyCat_Click" EnableViewState="false" />

这将为您提供常规按钮,而不是提交按钮。

答案 1 :(得分:4)

要指定输入控件runat = server,还必须指定id。你得到的错误可能是因为js错误。标准html控件上的onclick事件假定脚本方法定义,而看起来你想要做一个回发类型的操作。您可以选择根据您为onclick事件提供的方法名称定义javascript函数,或使用__doPostBack方法显式触发回发

<input type="button" runat="server" id="btnTest" />

答案 2 :(得分:2)

你试过了吗?

<button type="button" id="btnBuyCat" name="btnBuyCat" value="Shopping Cart"
title="Click to buy a cat"  onclick="btnBuyCat_Click">Click Me!</button>

答案 3 :(得分:0)

您可以使用:

btnBuyCat.ServerClick += new EventHandler(btnBuyCat_ServerClick);