【问题标题】:<input type="button" runat="server" /> won't work in ASP.NET<input type="button" runat="server" /> 在 ASP.NET 中不起作用
【发布时间】:2013-11-11 22:14:30
【问题描述】:

好的,这可能看起来很傻,但是在 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:(顺便说一句,忽略命名容器)

<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" 只是为了检查,但除非我使用&lt;asp:Button&gt;,否则我无法让它工作。我确定这与 JavaScript 有关。

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

【问题讨论】:

  • 尝试添加一个id再试一次
  • @Jeroen:可怕吗?拜托,他接受了 5 个合格问题中 3 个的答案,而不是 500 个中的 300 个。
  • 别担心 Jeroen,如果你能帮助我,我会用赞成票和复选标记来看待你!我不问很多问题,其中一些没有解决方案!
  • @jwsample: 有一个id,看我问题下方的代码

标签: javascript asp.net


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    要指定输入控件 runat=server,您还必须指定一个 id。此外,您得到的错误可能是由于 js 错误。标准 html 控件上的 onclick 事件假设脚本方法定义,而您似乎想要执行回发类型操作。您的选择是根据您给 onclick 事件的方法名称定义一个 javascript 函数,或者使用 __doPostBack 方法显式触发回发

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

    【讨论】:

    • 要包含点击回发行为,您将执行
    • +1 Fadrian,这是我所期待的答案。我只是还没有意识到关于 ASP.NET 的那些细节。 (羞愧地垂下头) 但是,jball 的提示对于我想要完成的任务来说更加简单;不过谢谢!
    • 如果我得到你的建议,我可能会给你打勾,因为从技术上讲,你的答案解释了为什么我的代码不起作用。但我仍然在使用 jball,因为它更容易。
    • 不用担心。告诉我你过得怎么样。
    【解决方案3】:

    你试过了吗:

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

    【讨论】:

      【解决方案4】:

      你可以使用:

      btnBuyCat.ServerClick += new EventHandler(btnBuyCat_ServerClick);
      

      【讨论】:

        猜你喜欢
        • 2016-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-15
        • 2010-10-02
        • 2016-02-18
        • 1970-01-01
        相关资源
        最近更新 更多