日期:2014-05-17  浏览次数:20482 次

【新手求助】ajax请求改变repeater的数据源
各位好,请问这个怎么做呢,点击按钮改变repeater的数据源


if (!string.IsNullOrWhiteSpace(Request.QueryString["cond"])) {//点击按钮进入此过程
                    string cond = Request.QueryString["cond"].ToString();
                    rptProducts.DataSource = InsuredDetailsList.OrderBy(i => i.PlanDetails.Rate.Premium);
                }
                else {
                    rptProducts.DataSource = InsuredDetailsList;
                }
                rptProducts.DataBind();


我是想点击按钮,将同一个List的数据按照条件改变顺序,然后重新绑定该repeater,调试时有进入if过程里面,但是界面还是没有改变,谢谢各位

------解决方案--------------------
如果是无刷新的操作,你只能从前端用js来重新“绑定”数据(实质上就是拼接html元素或者叫html字符串)。要不然你还是需要通过服务控件的事件来“绑定”
------解决方案--------------------
数据绑定是在服务器端完成的,你不可能用Ajax获取数据后再绑定到repeater上,用Ajax最简单的办法是获取repeater生成的html,然后在客户端替换即可。
------解决方案--------------------
LZ,不要过分依赖AJAX。
AJAX从本源上来说,毕竟只能是甜点,不能成为主食。如果能成为主食,那早就会有全站不刷新的玩意出现了。
因此,更新REPEATER数据源的问题,不是说不可以从AJAX来发起。只不过有点得不偿失。真要做还是可以的,AJAX传数据给后台,然后重新绑定,用UPDATEPANEL,只不过没做过的话,一开始有点抓狂。
建议,如LS几位说的那样,AJAX直接前台改页面。

如果数据量比较大的话,还是刷新吧。