__dopostback无法按预期工作 [英] __dopostback not working as expected

查看:94
本文介绍了__dopostback无法按预期工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

方案1(可行) 这是我创建的POC. 我有一个脚本管理器,一个HTML文本框,一个ASP.NET按钮,一个为上述按钮的Click事件设置了异步触发器的updatepanel.对于HTML文本框,我有onkeyup='__doPostBack('<%=ASPBUTTON.ClientID%>','').并且它的工作原理是,单击了按钮的Click事件,并且updatepanel被异步更新.

Scenario 1 (That Works) This is a POC i created. I have a script manager, a html textbox, an ASP.NET button, an updatepanel with async trigger set for Click event of above mentioned button. For html textbox i have, onkeyup='__doPostBack('<%=ASPBUTTON.ClientID%>',''). AND IT WORKS, the Click event of button is hit, and updatepanel is updated asynchronously.

方案2(不起作用) 与我的实际代码库的唯一区别是,我有一个JQUERY FILAMENTGROUP datetimepicker,其onchange事件被使用,而不是html文本框的onchange.此外,我的页面在这里使用母版页.现在,我的问题是,当datetimepicker的onchange事件触发时,请求进入服务器端,但BUTTON click事件没有触发.

Scenario 2 (It's not working) The only difference with my actual codebase is that i have a JQUERY FILAMENTGROUP datetimepicker whose onchange event is being used instead of html textbox's onchange. Further, here my page uses a master page. Now, my problem is that when onchange event for datetimepicker fires, the request goes server side, but BUTTON click event is not getting fired.

更多细节, 我想在选择datetimepicker时自动更新updatepanel.因此,该按钮实际上将通过CSS隐藏(显示:无).

Some more details, I want to update the updatepanel automatically on datetimepicker selection. So, the button would be actually hidden through css (display:none).

按钮ID-btnDateRangeCallback

Button id - btnDateRangeCallback

Datetimepicker文本框(非ASP控件)-dateRange

Datetimepicker Textbox (non ASP control) - dateRange

        onChange: function() {__doPostBack('<%=btnDateRangeCallback.ClientID%>',   $('#dateRange').val());}

[[请记住,我说过它是在我的POC简单化的情况下工作的,而在我的实际代码库中,我使用的是一个母版页来进行继承,因此所有这些控件都放在一个contentplaceholder中.此外,发生了回发,如果我在Page_Load处中断,我可以看到_EVENTTARGET和_EVENTARGUMENT已正确发送]

请帮助.

简而言之, 回发后,当我在Page_Load处中断时,我看到Request.Form内容为, ctl00%24ContentPlaceHolder1%24SMgr1 = ctl00%24ContentPlaceHolder1%24SMgr1%7cctl00_ContentPlaceHolder1_btnDateRangeCallback & __ EVENTTARGET = ctl00_ContentPlaceHolder1_btnDateRangeCallback & _ EVENTARGUMENT = 5%2f3%2f2011 +-+ 6%2f2%2f2011 & _VIEWSTATE =%2fwEPDwULLTE3NDY5NDIwMDRkZIuTqMNNsFHlRYhjpKaUCaCXj42h & _ EVENTVALIDATION =%2fwEWAgLBx52kBALP6Ln6DdkkwE%2frVIKQzKE1L0k4QhIc768w & _ASYNCPOST = true&

To put it more simply, After postback, when i break at Page_Load, i see the Request.Form contents as, ctl00%24ContentPlaceHolder1%24SMgr1=ctl00%24ContentPlaceHolder1%24SMgr1%7cctl00_ContentPlaceHolder1_btnDateRangeCallback &__EVENTTARGET=ctl00_ContentPlaceHolder1_btnDateRangeCallback &_EVENTARGUMENT=5%2f3%2f2011+-+6%2f2%2f2011 &_VIEWSTATE=%2fwEPDwULLTE3NDY5NDIwMDRkZIuTqMNNsFHlRYhjpKaUCaCXj42h &_EVENTVALIDATION=%2fwEWAgLBx52kBALP6Ln6DdkkwE%2frVIKQzKE1L0k4QhIc768w &_ASYNCPOST=true&

为什么不是btnDateRangeCallback击中的Click事件?

Why is not Click event for btnDateRangeCallback hitting???

推荐答案

使用UniqueID代替:__doPostBack('<%=btnDateRangeCallback.UniqueID %>', ...

Use the UniqueID instead: __doPostBack('<%=btnDateRangeCallback.UniqueID %>', ...

这篇关于__dopostback无法按预期工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆