如何从HTML按钮控件调用服务器端事件?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (67)

我正在使用ASP.Net创建一个应用程序,其中我在aspx页面上有一个HTML按钮。

<input type="submit" id="btnSubmit" runat="server" 
   style="background-image:url(App_Themes/default/Images/quiz_class/btn_submit.jpg);
   width:80px; height:29px;" onserverclick="btnSubmit_ServerClick" />

但是当我点击按钮时,它不会调用aspx.cs页面上的btnSubmit_ServerClick事件。

我不想使用asp控制按钮。

提问于
用户回答回答于

在你的aspx页面上定义HTML Button元素等。

如果此元素是数据绑定控件的一部分(即:网格视图等),则可能需要使用CommandName和可能的CommandArgument作为属性。添加你的按钮的内容和结束标记。

<button id=`cmdAction` 
    runat=`server` onserverclick=`cmdAction_Click` 
    class=`Button Styles` 
    title=`Does something on the server` 
    <!-- for databound controls -->
    CommandName=`cmdname`> 
    CommandArgument=`args...`
    >
    <!-- content -->
    <span class=`ui-icon ...`></span>
    <span class=`push`>Click Me</span>
</button>

在页面后面的代码中,元素将调用将被定义为元素的ID_Click事件函数的处理程序。

protected void cmdAction_Click(object sender, EventArgs e)
{
: do something.
}

还有其他解决方案,如使用自定义控件等。另请注意,我正在使用VS2K8中的项目。

用户回答回答于

如果您可以通过指定而将输入按钮转换为服务器端控件runat="server",并且你正在使用asp.net,则可以使用HtmlButton.OnServerClick属性。

<input id="foo "runat="server" type="button" onserverclick="foo_OnClick" />

扫码关注云+社区