加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从JavaScript提交按钮点击/页面提交

发布时间:2020-12-16 01:43:39 所属栏目:百科 来源:网络整理
导读:我想了解asp.net框架如何知道何时单击按钮,因此一旦收到请求就会在服务器上触发其click事件. 我需要了解它是如何工作的,因为我想从javascript触发按钮的服务器点击事件. 我可以从JavaScript执行页面提交: document.forms[0].submit(); 但是如何做到这一点,
我想了解asp.net框架如何知道何时单击按钮,因此一旦收到请求就会在服务器上触发其click事件.

我需要了解它是如何工作的,因为我想从javascript触发按钮的服务器点击事件.

我可以从JavaScript执行页面提交:

document.forms[0].submit();

但是如何做到这一点,以便asp.net认为发生了按钮点击,因此在服务器上,一旦收到请求,其点击事件就会触发.

谢谢

更新1

谢谢大家的回复.如果我添加一个asp.net按钮并查看源代码,做一些测试,我似乎无法找到生成的JavaScript“__doPostBack”函数.

这是我试过的测试.

我有一个普通的HTML按钮(button1)和一个asp.net按钮.(button2)

从HTML按钮的单击事件(button1),我添加了一个客户端调用javascript __doPostback方法传入asp.net button2 id.

所以我试图通过调用html按钮(button1)来触发服务器端button2单击事件.

??

<html xmlns="http://www.w3.org/1999/xhtml">  
<head runat="server">  
    <title></title>  
</head>  
<body>  
    <form id="form1" runat="server">  
    <div>  
        <input id="Button1" type="button" 
         value="Raise Button2 server side click event"
         onclick="javascript:__doPostBack('Button2','')" /> 

        <asp:Button ID="Button2" runat="server" 
        Text="asp.net_Button2" 
        OnClick="button2Click" />  
    </div>  
    </form>  
</body>  
</html>

并生成的HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
</title>
</head>
<body>
    <form name="form1" method="post" action="Default6.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" 
value="/wEPDwUKMjA0OTM4MTAwNGRke29WUkB+FLhQArxd1ehT98cWw1Y=" />
</div>

<div>

    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" 
value="/wEWAgKLs+3sDgK7q7GGCBs2MBvLk9CJNnA02t08R1LKdiJU" />
</div>
    <div>
        <input id="Button1" type="button" value="Raise Button2 server side click event" 
onclick="javascript:__doPostBack('Button2','')" />
        <input type="submit" name="Button2" value="asp.net_Button2" id="Button2" />
    </div>
    </form>
</body>
</html>

更新2

如果我将按钮“UseSubmitBehavior”设置为false,那么它确实生成了__doPostBack方法,并通过从客户端调用它确实引发了服务器上的事件.

那么提交和回发之间的区别是什么? (我将为此开始一个新线程).
谢谢您的帮助!

解决方法

只要需要回发页面,就会调用javascript __doPostBack函数.

要了解__doPostBack,请阅读this文章.

编辑

使用UseSubmitBehavior属性指定Button控件是使用客户端浏览器的提交机制还是ASP.NET回发机制.默认情况下,此属性的值为true,从而导致Button控件使用浏览器的提交机制.如果指定false,则ASP.NET页面框架将客户端脚本添加到页面以将表单发布到服务器.

当UseSubmitBehavior属性为false时,控件开发人员可以使用GetPostBackEventReference方法返回Button的客户端回发事件. GetPostBackEventReference方法返回的字符串包含客户端函数调用的文本,可以插入到客户端事件处理程序中.

参考:

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx

http://www.w3schools.com/ASPNET/prop_webcontrol_button_usesubmitbehavior.asp

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读