
sqldataadapter da = new saldatadapter("sql query"),con);datatable dt = new datatable();grIDvIEw1.datasource = dt;grIDvIEw1.databind(); 有没有一个选项,我可以启用页码自动出现在url?我想这样做的原因是,我可以通过网页电子邮件发送网址,然后当用户点击网址时,它会导致grIDvIEw从正确的页面显示数据.
更新2 – 当前要求的完整代码:
public partial class conflict_search_Default : System.Web.UI.Page{ protected voID Page_Load(object sender,EventArgs e) { if (!Page.IsPostBack) { if (Request.queryString["page"] != null) { int index = int.Parse(Request.queryString["page"]); GrIDVIEw1.PageIndex = index; BindData(); } else { BindData(); } } else { BindData(); } } private voID BindData() { sqlConnection con = new sqlConnection(ConfigurationManager.AppSettings["connString"]); sqlDataAdapter da = new sqlDataAdapter("sql query here which returns over 100 pages",con); Datatable dt = new Datatable(); da.Fill(dt); GrIDVIEw1.DataSource = dt; GrIDVIEw1.DataBind(); } protected voID GrIDVIEw1_PageIndexChanging(object sender,GrIDVIEwPageEventArgs e) { int index = e.NewPageIndex + 1; string url = httpContext.Current.Request.Url.absoluteUri; e.Cancel = true; Response.Redirect(string.Format("{0}?page={1}",url,index)); } protected voID GrIDVIEw1_PageIndexChanged(object sender,EventArgs e) { BindData(); }} 当我尝试点击数据网格底部的分页号时,这会给我一个错误.错误如下:
如果我加载页面新鲜,它将加载.如果我点击页面5,它会在url中显示?page = 5,这是我期望的,但是由于某些原因,第6页在屏幕底部的分页号码上被选中.如果我然后点击第10页,例如,url更改为?page = 5?page = 10,这显然是错误的,这给出错误:
input string was not in a correct format. int index = int.Parse(Request.queryString["page"]);解决方法 如果您更改功能GrIDVIEw1_PageIndexChanging中的代码如下所示将会工作:
protected voID GrIDVIEw1_PageIndexChanging(object sender,GrIDVIEwPageEventArgs e){ e.Cancel = true; int index = e.NewPageIndex; string urlPath = httpContext.Current.Request.Url.absoluteUri; Uri uri = new Uri(urlPath); string url = uri.GetleftPart(UriPartial.Path); Response.Redirect(string.Format("{0}?page={1}",index));} 此外,您不需要处理GrIDVIEw1_PageIndexChanged事件.
总结以上是内存溢出为你收集整理的c# – 从url值浏览gridview页面全部内容,希望文章能够帮你解决c# – 从url值浏览gridview页面所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)