首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从html按钮控件调用服务器端事件

从html按钮控件调用服务器端事件
EN

Stack Overflow用户
提问于 2011-08-25 18:46:34
回答 6查看 142.6K关注 0票数 27

我正在使用ASP.Net创建一个应用程序,其中我在一个aspx页面上有一个超文本标记语言按钮。

代码语言:javascript
复制
<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控制按钮。

请帮帮我..

EN

回答 6

Stack Overflow用户

发布于 2012-09-18 17:27:35

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

代码语言:javascript
复制
<input id="foo "runat="server" type="button" onserverclick="foo_OnClick" />

这应该会起作用,并在您的服务器端代码中调用foo_OnClick。还要注意,根据上面链接的Microsoft文档,您还应该能够使用HTML4.0标记。

票数 43
EN

Stack Overflow用户

发布于 2013-06-20 23:15:01

在您的aspx页面上,定义HTML Button元素和常见的疑点: runat、class、title等。

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

代码语言:javascript
复制
<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事件函数的处理程序。

代码语言:javascript
复制
protected void cmdAction_Click(object sender, EventArgs e)
{
: do something.
}

还有其他的解决方案,比如使用自定义控件等。还要注意的是,我在VS2K8的项目中使用了这一点。

希望这能帮上忙。享受吧!

票数 5
EN

Stack Overflow用户

发布于 2011-08-25 20:57:14

完成此操作的最简单方法是覆盖RaisePostBackEvent方法。

代码语言:javascript
复制
<input type="button" ID="btnRaisePostBack" runat="server" onclick="raisePostBack();" ... />

在你的JavaScript中:

代码语言:javascript
复制
raisePostBack = function(){
    __doPostBack("<%=btnRaisePostBack.ClientID%>", "");
}

在你的代码中:

代码语言:javascript
复制
protected override void RaisePostBackEvent(IPostBackEventHandler source, string eventArgument)
{
    //call the RaisePostBack event 
    base.RaisePostBackEvent(source, eventArgument);

    if (source == btnRaisePostBack)
    {
         //do some logic
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7189037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档