js Datagridview 请问有谁懂得用JAVASCRIPT绑定DATAGRIDVIEW? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最多用异步方式加载数据吧GridView分页程序作者:四叶草 日期:2007-10-09字体大小: 小 中 大 要想实现无刷新分页,就需要拦截GridView的PageIndexChange()事件,然后用ICallBackEventHandler实现无刷新回调.可是我发现如果GridView采用正常的分布方法的话,很难在客户端捕获到这个事件.于是我想了个办法,那就是采用模版的方式来编辑用于分页操作的Row,在模版放上我们自己添加上去的控件来实现翻页操作.具体的做法是:1.往页面上放一个GridView,将其放置于一个DIV中.正常设置分页操作.2.进入模版编辑界面,选择编辑Pager Template,放上用于执行分页操作的控件.我的做法是放两个LinkButton控件.ID分别设为lnkbtnPrev,lnkbtnNext.3.在GridView1_DataBound事件中给这两个控件添加相应的客户端事件.代码如下: GridViewRow pagerRow = GridView1.BottomPagerRow; LinkButton lnkPrev = (LinkButton)pagerRow.Cells[0].FindControl("lnkbtnPrev"); LinkButton lnkNext = (LinkButton)pagerRow.Cells[0].FindControl("lnkbtnNext"); int newPageIndex = GridView1.PageIndex; lnkPrev.Enabled = false; lnkNext.Enabled = false; lnkPrev.Attributes.Remove("onclick"); lnkNext.Attributes.Remove("onclick"); if (newPageIndex > 0) { lnkPrev.Enabled = true; lnkPrev.Attributes.Add("onclick", "setPageTo(" + (newPageIndex - 1).ToString() + ");return false;"); } if (newPageIndex < GridView1.PageCount - 1) { lnkNext.Enabled = true; lnkNext.Attributes.Add("onclick", "setPageTo(" + (newPageIndex + 1).ToString() + ");return false;"); }4.在客户端脚本中添加setPageTo()方法,以实现回调. function setPageTo(pageIndex) { var context=document.getElementById("listDIV"); context.innerHTML="<IMG SRC='Images/pie.gif' />数据加载中..."; var arg='pageChange|'+pageIndex; <%= ClientScript.GetCallbackEventReference(this, "arg", "onCallServerComplete", "context")%>; } function onCallServerComplete(result,context) { context.innerHTML=result; }5.在服务器端添加用于实现回调的方法,重新生成GridView分页后的HTML代码,传回客户端. public void RaiseCallbackEvent(string eventArgument) { serverReturn = eventArgument; } public string GetCallbackResult() { return pageChange(int.Parse(serverReturn )); } private string pageChange(string newIndex) { int newPageIndex = int.Parse(newIndex); //设置数据源 GridView1.DataBind(); return getRenderCode(); } private string getRenderCode() { StringWriter writer1 = new StringWriter(CultureInfo.InvariantCulture); HtmlTextWriter writer2 = new HtmlTextWriter(writer1); GridView1.Visible = true; GridView1.RenderControl(writer2); writer2.Flush(); writer2.Close(); return writer1.ToString(); } 请问sql怎么实现 图片显示问题? [初级问题?!]为啥从获得的SQLSERVER数据库时间字段中的时分秒总是00:00:00?! 关于OWC组件问题, 用WebRequest获取当前页的html源码生成静态页面的问题? html控件 保存多条记录 请高手指点:asp.net中如何在sql查询条件中引入变量? 数据库查询中中文column的问题? .net怎么画折线啊 XmlDocument.Save保存的路径问题 关于使用数据集进行模糊查询
字体大小: 小 中 大
要想实现无刷新分页,就需要拦截GridView的PageIndexChange()事件,然后用ICallBackEventHandler实现无刷新回调.可是我发现如果GridView采用正常的分布方法的话,很难在客户端捕获到这个事件.于是我想了个办法,那就是采用模版的方式来编辑用于分页操作的Row,在模版放上我们自己添加上去的控件来实现翻页操作.具体的做法是:1.往页面上放一个GridView,将其放置于一个DIV中.正常设置分页操作.2.进入模版编辑界面,选择编辑Pager Template,放上用于执行分页操作的控件.我的做法是放两个LinkButton控件.ID分别设为lnkbtnPrev,lnkbtnNext.3.在GridView1_DataBound事件中给这两个控件添加相应的客户端事件.代码如下: GridViewRow pagerRow = GridView1.BottomPagerRow;
LinkButton lnkPrev = (LinkButton)pagerRow.Cells[0].FindControl("lnkbtnPrev");
LinkButton lnkNext = (LinkButton)pagerRow.Cells[0].FindControl("lnkbtnNext");
int newPageIndex = GridView1.PageIndex;
lnkPrev.Enabled = false;
lnkNext.Enabled = false;
lnkPrev.Attributes.Remove("onclick");
lnkNext.Attributes.Remove("onclick");
if (newPageIndex > 0)
{
lnkPrev.Enabled = true;
lnkPrev.Attributes.Add("onclick", "setPageTo(" + (newPageIndex - 1).ToString() + ");return false;");
}
if (newPageIndex < GridView1.PageCount - 1)
{
lnkNext.Enabled = true;
lnkNext.Attributes.Add("onclick", "setPageTo(" + (newPageIndex + 1).ToString() + ");return false;");
}4.在客户端脚本中添加setPageTo()方法,以实现回调. function setPageTo(pageIndex)
{
var context=document.getElementById("listDIV");
context.innerHTML="<IMG SRC='Images/pie.gif' />数据加载中...";
var arg='pageChange|'+pageIndex;
<%= ClientScript.GetCallbackEventReference(this, "arg", "onCallServerComplete", "context")%>;
} function onCallServerComplete(result,context)
{
context.innerHTML=result;
}5.在服务器端添加用于实现回调的方法,重新生成GridView分页后的HTML代码,传回客户端. public void RaiseCallbackEvent(string eventArgument)
{
serverReturn = eventArgument;
}
public string GetCallbackResult()
{
return pageChange(int.Parse(serverReturn ));
} private string pageChange(string newIndex)
{
int newPageIndex = int.Parse(newIndex);
//设置数据源
GridView1.DataBind(); return getRenderCode(); } private string getRenderCode()
{
StringWriter writer1 = new StringWriter(CultureInfo.InvariantCulture);
HtmlTextWriter writer2 = new HtmlTextWriter(writer1); GridView1.Visible = true;
GridView1.RenderControl(writer2);
writer2.Flush();
writer2.Close(); return writer1.ToString(); }