public void bind() {        OracleConnection conn;
        String constr = "Data Source=DPLIS;User Id=deppon009;Password=dplis009;";
  
        conn = new OracleConnection(constr);
        conn.Open();
        OracleDataAdapter thisAdpater =
                new OracleDataAdapter("select * from t_myp_booktype", conn);
        DataSet ds = new DataSet();        thisAdpater.Fill(ds, "booktype");
        DataTable dt = ds.Tables["booktype"];        GridView1.DataSource = ds.Tables[0];
        GridView1.DataBind();
        DetailsView1.DataSource = ds.Tables[0];
        DetailsView1.PageIndex = GridView1.SelectedIndex + GridView1.PageSize * GridView1.PageIndex;
        DetailsView1.DataBind();
        
    }但是当点击按钮时,detailsView显示的是点击上一个GridView对应的数值 
怎么回事?

解决方案 »

  1.   

    点击上一个GridView对应的数值,是什么意思
      

  2.   

    GridView1.DataSource = ds.Tables[0]; 
            GridView1.DataBind(); 
            DetailsView1.DataSource = ds.Tables[0]; 
            DetailsView1.PageIndex = GridView1.SelectedIndex + GridView1.PageSize * GridView1.PageIndex; 
            DetailsView1.DataBind(); 
    两个连在一起写?那在GridView1.DataBind(); 后  GridView1.SelectedIndex 应该不会变的
    跟踪一下GridView1.SelectedIndex + GridView1.PageSize * GridView1.PageIndex;
    还有在selectchange事件中绑定 DetailsView1
    DetailsView1.DataSource = ds.Tables[0]; 
            DetailsView1.PageIndex = GridView1.SelectedIndex + GridView1.PageSize * GridView1.PageIndex; 
            DetailsView1.DataBind(); 
      

  3.   

    基本没什么,以下试试!!
    DetailsView1.PageIndex = GridView1.SelectedIndex +1 + GridView1.PageSize * GridView1.PageIndex; 
      

  4.   

    将DetailsView1单独绑定就OK L了
      

  5.   

    UP。添加个SqlDataSource,指定<SelectParameters>
                    <asp:ControlParameter ControlID="GridView" Name="ID" 
                        PropertyName="SelectedValue" />
                </SelectParameters>和查询方法