首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显式__doPostBack()

显式__doPostBack()
EN

Stack Overflow用户
提问于 2010-09-19 23:26:07
回答 4查看 5.4K关注 0票数 1

我已经在按钮onclientClick事件上显式地添加了__doPostBack()。

代码语言:javascript
复制
<asp:Button ID="Button1" runat="server" Text="Button" 
         OnClientClick="__doPostBack('Button1','')"/> 

当我单击该按钮时,Page_Load调用了两次。但是如果我在页面加载中添加下面的代码,页面加载只会在点击按钮时调用一次。

代码语言:javascript
复制
Button1.Attributes.Add("onClientClick", "__doPostBack('Button1','')");

同样,如果我使用return false进行添加,它只会在单击时调用一次页面加载

代码语言:javascript
复制
 <asp:Button ID="Button1" runat="server" Text="Button" 
         OnClientClick="__doPostBack('Button1','');return false;"/>

返回true再次给我两次页面加载,但是在attribute.add代码中添加return true或false会得到相同的结果,只有一次页面加载调用。

代码语言:javascript
复制
Button1.Attributes.Add("onClientClick", "__doPostBack('Button1','');return true;");

当我试图以不同的方式添加__doPostBack时,我不能确切地理解到底发生了什么。请帮帮忙。谢谢

EN

回答 4

Stack Overflow用户

发布于 2010-09-20 15:39:55

通过放置OnClientClick,然后asp.net使用您的代码和doPostBack在客户端大小上呈现onlick函数。

所以它被调用了2次,因为其中一次是由self调用的,另一次是因为你添加了。

票数 4
EN

Stack Overflow用户

发布于 2010-09-20 05:29:45

一个Button已经做了一个PostBack,为什么你需要从客户端调用它呢?

不管怎样,我想你的例子中的page_load被调用了两次,因为一次是由OnClientClick调用的,第二次是服务器端调用的。

票数 1
EN

Stack Overflow用户

发布于 2011-12-08 10:20:00

如果返回false,则取消onClick事件(即未真正单击按钮,因此仅触发_doPostBack )。这就是JavaScript行为。

OnClientClick属性在HTML代码中呈现为"onClick“(当该属性位于ASP.NET按钮上时)。你的口供。

代码语言:javascript
复制
Button1.Attributes.Add("onClientClick", "__doPostBack('Button1','');return true;");

...is不是有效的超文本标记语言,因为它呈现的"onClientClick“不是JavaScript事件(即_doPostBack从不触发,但通常的回发会触发)。Attributes属性用于向按钮的最终呈现添加直接的HTML属性(不从.NET重写)。

我的建议是:不要调用_doPostBack,除非您还没有找到任何其他触发回发的替代方法。在您提供的示例中,OnClientClick属性是完全多余的。

我希望我说得够清楚了(我的英语不是很好)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3746270

复制
相关文章

相似问题

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