asp.net updatepanel里gridview更新需要点鼠标两次问题解决

在一个UpdatePanel中放入一gridView,点击分页时却需要点击两次才显示正确内容,刚开始的时候以为是UpdatePanel问题,在网上搜索得到了一些结论但没能解决问题。通过fiddler监控http信息能看到在第一次点击时传递的信息是正确的,如下图:

2011022512365049.jpg

能够传递正确的页码,但返回的页面数据却不正确。所以应该是代码问题,因为表格数据是通过自定义过程读取,所以每次页面提交时都需要重新获取数据,Gridview不能通过viewstate属性传递其数据源的。

获取数据的代码如:

 private void GetData()
    {
        localhost.QueryCondition condition = null;
        if (txtSearchValue.Value != "")//为空查询全部
        {
            condition = new localhost.QueryCondition
            {
                FieldName = slctSearchFields.Value,
                FieldOper = slctCondition.Value,
                FieldValue = txtSearchValue.Value
            };
        }

        localhost.CominfoTemplateService1 service = new localhost.CominfoTemplateService1();
        gridInfo.DataSource = service.SearchComsByUserName(Context.User.Identity.Name, condition);
        gridInfo.DataBind();
    }
而在表格分页代码是这样的。
 
 
protected void gridInfo_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GetData();
   gridInfo.PageIndex = e.NewPageIndex;
    }
跟踪代码发现在grid的databind后,就会触发rowdata_bind事件,会填充数据,而此时表格的页码还没有发生变化,调用两个语句的顺序为:
gridInfo.PageIndex = e.NewPageIndex;
        GetData();
问题解决。

转载于:https://www.cnblogs.com/lazeman/archive/2011/02/25/1964732.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值