我的gridview与detailsview关联,在网上找是这样实现:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        DetailsView1.PageIndex= GridView1.SelectedIndex;
    }
但是gridview分页后,再执行选择details显示的还是第一页的数据是怎么回事啊

解决方案 »

  1.   

    GridView1.SelectedIndex应该是ID吗?
    你需要把代码都发上来
      

  2.   

    我觉得gridview的这个index是gridview本身的ID,通过数据源检索的“所有”记录在gridview都有这么一个不同的唯一index(0起始)。我的例子也很简单,就是一个sqldatasourc、一个gridview、一个detailsview,两个控件都绑定到sqldatasourc,设置gridview可分页,增加可选择项在gridview的SelectedIndexChanged方法中写:
    DetailsView1.PageIndex= GridView1.SelectedIndex;
    结果在gridview第二页时,选择一条记录detailsview显示的是gridview第一页相同行的记录
      

  3.   

    噢 我的问题解决了,方法里应该写:
    DetailsView1.PageIndex = GridView1.SelectedIndex + GridView1.PageIndex * GridView1.PageSize;
    还得再算一遍,可是我在网上看的大多都不这样的,谢谢了!
      

  4.   

    这样做
    GridView1属性 DataKeyNames="ID"
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            DetailsView1.(对应的)= GridView1.SelectedValue;
        }
    GridView1.SelectedIndex这是这个页的索引分页会重新记录的;
      

  5.   

    车神,看在都是东北的份上,再告诉一下吧DetailsView1.(对应的)= GridView1.SelectedValue;
    这个(对应的)应该写什么方法或属性啊?
      

  6.   

    呵呵 等我给你找找 实际DetailsView1这个用处不大 我平时都自己做textbox一类的东西显示单个数据 号控制
      

  7.   

    感觉应该是DetailsView1.DataSourceID这个别忘了把ID帮上
      

  8.   

    终于OK了,刚用gridview、detaisview之类的,用的稀哩糊涂的,刚才看到网上翻译的Scott Mitchell 的ASP.NET 2.0的例子,是设了两个数据源,detailsview绑定到第二个,第二个数据源选相同的表,生成where时绑定到gridview的selectvalue上的。我就用了一个数据源,呵呵。谢谢了!给分
      

  9.   

    shanshan3312()  的解决方案很好呢。   
    我刚开始学.net 我用了两个数据源  也成功了  多谢!