日期:2014-05-16  浏览次数:20410 次

GridView 分页后,DataKeyNames 不起作用,求教!
  protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindGV1();

            }
        }

     


        void BindGV1()
        {

                   
            
           this.GV1.DataSource =getData();
            this.GV1.DataKeyNames = new string[] { "XBNO" };
            this.GV1.DataBind();

        }

        protected void GV1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GV1.PageIndex = e.NewPageIndex;
            BindGV1();
        }

        protected void btndistext_Click(object sender, EventArgs e)
        {
            this.TextBox1.Text = GV1.DataKeys[0]["XBNO"].ToString().Trim();
        }


以上代码,在开发的机子上能正确运行,得到预想结果

但,把编译好的代码移植到别的机子上,在没有翻页前,也能取得正确的XBNO值,翻页后,就出错了, 出现“index was out of range "了
百思不得其解,特向大侠请教!
------解决方案--------------------
Refer here:
http://www.cnblogs.com/insus/archive/2013/04/14/3020327.html
------解决方案--------------------
引用:
不是这个原因!
程序传过去给别人测试才发现这个的问题的

在自己的机子,是没有这个问题的,连自己都不信有这个问题,今天才用另一台机子测试真的有这个问题

故写一个小程序,来测试,也有这个问题,是不是我移植时 应安装个多什么组件?不然,为什么会出这这个问题!

移植过去的机器数据显示和分页都正吗?另外看看.net framework版本是否有差异
------解决方案--------------------
   分页用的内置aspnetpage还是?