ajax刷新ASP.NET Repeater控件的数据
来源:互联网 发布:澳门 一等功 知乎 编辑:程序博客网 时间:2024/05/17 02:07
使用repeater控件时,遇到这样一个问题,想使用ajax来请求页面来的后台,使repeater的数据源重新绑定,却发现怎么绑定都不行。
研究了半天,研究出以下两种方法:
第一种,利用js使页面回发主动回发一次,回发的时候将参数加在url后面带回后台,在后台接受到参数,查询数据,重新绑定给repeater。
js代码:
这里先找到你需要触发回发的那个控件,我这里是一个class为button的input控件
$(".button").click(function(){
//这里的href是自己,在后面加上参数,这样就能在后台获取到参数信息
window.location.href = "/ActivitiWorkFlow/WFVersion.aspx?&f=QueryWFDefinitionList&wfname=" + encodeURI(title) + "&start=0&limit=5";
window.parent.location.reload();//这里有个问题,每次重新绑定了之后不会立即显示数据,所以就做了一下简单的处理,让页面刷新一下,数据就出来了。
});
后台C#代码;
protected void Page_Load(object sender, EventArgs e)
{
var var fun = Request["f"];//这里来获取参数
if(string.IsNullOrEmpty(fun))//这里判断是否接受到了参数,如果不判断就使用,可能会抛出异常
{
return;
}
switch (fun)
{
case "QueryWFDefinitionList":
var wfname = HttpUtility.UrlDecode(Request["wfname"]);
var start = int.Parse(Request["start"]);
var limit = int.Parse(Request["limit"]);
try
{
var data = handler.QueryWFDefinitionList(wfname, start, limit, HttpContext.Current);
rpLogicVersion.DataSource = data.Value<Newtonsoft.Json.Linq.JArray>("data");//重新绑定数据源
rpLogicVersion.DataBind();//
}
catch (Exception ex)
{
Log.Error(ex.Message + ex);
throw;
}
break;
}
}
这样就可以利用js来控制repeater的数据源。
第二种:将新的数据源生成的html代码发送到前台,手动从js里将html代码加入repeater的tbody中
js代码:
//下面是利用ajax将返回的内容以dom的形式插进当前页面
// $.ajax({
// type: "POST",
// url: "/ActivitiWorkFlow/WFVersion.aspx",
// data: "f=QueryWFDefinitionList&wfname=" + encodeURI(title) + "&start=0&limit=5",
// success: function(msg) {
// $("#rp_allVersion tbody").html(msg);//找到repeater的tbody
// }
// });
这里发送一个ajax到后台,请求数据,返回的msg是html代码。直接 找到repeater的tbody加入msg就可以了。
C#代码:
protected void Page_Load(object sender, EventArgs e)
{
var var fun = Request["f"];//这里来获取参数
if(string.IsNullOrEmpty(fun))//这里判断是否接受到了参数,如果不判断就使用,可能会抛出异常
{
return;
}
switch (fun)
{
case "QueryWFDefinitionList":
var wfname = HttpUtility.UrlDecode(Request["wfname"]);
var start = int.Parse(Request["start"]);
var limit = int.Parse(Request["limit"]);
try
{
var data = handler.QueryWFDefinitionList(wfname, start, limit, HttpContext.Current);
rpLogicVersion.DataSource = data.Value<Newtonsoft.Json.Linq.JArray>("data");//重新绑定数据源
rpLogicVersion.DataBind();//
//利用ajax来刷新repeater的数据时,可以使用下面的代码
//var sb = new StringBuilder();
//var sw = new StringWriter(sb);
//HtmlTextWriter htw=new HtmlTextWriter(sw);
//rpLogicVersion.RenderControl(htw);
//Response.Write(sb.ToString());
}
catch (Exception ex)
{
Log.Error(ex.Message + ex);
throw;
}finaly{
//这段代码必须写在finaly中,否则会报线程错误
//Response.End();
//Response.Flush()
}
break;
}
}
- ajax刷新ASP.NET Repeater控件的数据
- ASP.NET-----Repeater数据控件的用法总结
- ASP.NET-----Repeater数据控件的用法总结
- ASP.NET-----Repeater数据控件的用法总结
- ASP.NET用Repeater控件显示数据
- ASP.NET用Repeater控件显示数据
- Asp.net用Repeater控件显示数据
- Asp.net--数据绑定控件Repeater
- asp.net ajax repeater 无刷新 自定义分页
- ASP.NET Repeater控件
- ASP.NET - Repeater 控件
- asp.net 中repeater控件的使用
- asp.net 中repeater控件的使用
- asp.net 中repeater控件的使用
- asp.net Repeater控件的使用方法
- ASP.NET Repeater控件的嵌套使用
- 【ASP.net】解析Repeater 控件的模板
- ASP.NET的DataList和Repeater控件
- 【面试题】给定一个仅包含字母和数字(0-9)的字符串,要求找到最长递增的数字串
- A+B for Input-Output Practice (IV)
- LeetCode(21)Merge Two Sorted Lists
- android系统服务研究
- nodejs学习(二)
- ajax刷新ASP.NET Repeater控件的数据
- uva 1344
- Debian iptables
- Android开发入门之Action Bar用户交互
- G-BLASTN: Accelerating Nucleotide Alignment by Graphics Processors论文提供下载
- 今日之温故知新之判断素数
- 1001 A + B Problem II(C语言 大数加法模板)
- jsp中判断list为空(null或size==0)
- android图片视频缩略图显示