asp.net的ajax控件局部刷新源文件
大家好,我在使用的是vs2005+自安装AJAX控件,scriptmanager和updatepanel全部是默认设置,updatepanel里放了一个repeater控...
大家好,我在使用的是vs2005+自安装AJAX控件,scriptmanager和updatepanel全部是默认设置,updatepanel里放了一个repeater控件,repeater控件里的table中有一个弹出模态页的button1,我要的功能是根据模态页中的返回值在模态页关闭时在button1下面即时显示返回值提示,可以是label或者DIV什么都行.
现在的问题是:进入画面后我点击追加按钮,使repeater控件增加一个新项,但是新追加的项在客户端源文件中确无法看到,源文件还是进入画面时的状态,因此在javascript中也无法获得新追加的项里的控件ClientID,无法使用JS方式给出返回值.
希望有精通asp.net--ajax控件的高手能帮忙解答!不胜感激!
我在page_load中把repeater注册为ScriptManager1.RegisterAsyncPostBackControl(Repeater1);
但还是无效,是不是还有什么漏掉了? 展开
现在的问题是:进入画面后我点击追加按钮,使repeater控件增加一个新项,但是新追加的项在客户端源文件中确无法看到,源文件还是进入画面时的状态,因此在javascript中也无法获得新追加的项里的控件ClientID,无法使用JS方式给出返回值.
希望有精通asp.net--ajax控件的高手能帮忙解答!不胜感激!
我在page_load中把repeater注册为ScriptManager1.RegisterAsyncPostBackControl(Repeater1);
但还是无效,是不是还有什么漏掉了? 展开
1个回答
展开全部
确实,要解决这个问题必须要精通asp.net ajax结构才可以
不过现在为了帮你解决问题给你提供个思路
首先,你要知道整个asp.net ajax框架的功能是控制整个页面上form的postback来做的,如果postback的控件是asyncpostback控件,那么就执行异步提交,否则执行默认的同步提交
如果你需要异步更新updatepanel,就必须注册当前的控件为异步提交
如果你的控件是原来服务器就存在的,那么很容易,在服务器端写个代码,在当前的ScriptManager调用RegisterAsyncPostBackControl,或者添加UpdatePanel的Trigger
如果你的控件是客户端单独创建的,那就要麻烦一些了,可能需要写自定义控件,把这个控件注册为异步,并且把他的ClientId存到返回值客户端的页面上,你需要这个id来标记当前返回的控件,页面端动态生成的button在onclick的时候需要调用类似这样的方法__doPostBack('你的那个控件的ClientId','当前Button需要执行的任务之类的参数'),不过从Page的ClientScript的GetPostBackScript获取这样的脚本比较保险,也许以后asp.net框架会改这个脚本也说不定
这样这个动态生成的button点击的时候就相当于你写的那个自定义控件postback,同时他又是异步提交的话,那么就会驱动updatepanel进行更新
希望能帮助你,有什么疑问可以发hi给我
不过现在为了帮你解决问题给你提供个思路
首先,你要知道整个asp.net ajax框架的功能是控制整个页面上form的postback来做的,如果postback的控件是asyncpostback控件,那么就执行异步提交,否则执行默认的同步提交
如果你需要异步更新updatepanel,就必须注册当前的控件为异步提交
如果你的控件是原来服务器就存在的,那么很容易,在服务器端写个代码,在当前的ScriptManager调用RegisterAsyncPostBackControl,或者添加UpdatePanel的Trigger
如果你的控件是客户端单独创建的,那就要麻烦一些了,可能需要写自定义控件,把这个控件注册为异步,并且把他的ClientId存到返回值客户端的页面上,你需要这个id来标记当前返回的控件,页面端动态生成的button在onclick的时候需要调用类似这样的方法__doPostBack('你的那个控件的ClientId','当前Button需要执行的任务之类的参数'),不过从Page的ClientScript的GetPostBackScript获取这样的脚本比较保险,也许以后asp.net框架会改这个脚本也说不定
这样这个动态生成的button点击的时候就相当于你写的那个自定义控件postback,同时他又是异步提交的话,那么就会驱动updatepanel进行更新
希望能帮助你,有什么疑问可以发hi给我
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询