我想通过选择gridview1中的某一行,获取其中的数据,根据数据,得出gridview2;
出现的问题:
假设:选中gridview1中的第一行后得到了相应的gridview2,然后再去选第二行,却得到的还是上一次的gridview2,然后再选一次第二行,就得到真实的gridview2了;代码如下:
protected void gridview1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
        gridview1.SelectedIndex = e.NewSelectedIndex;
        int index = 0;
        index = gridview1.SelectedIndex;
        str_ID = Convert.ToInt16(gridview1.Rows[index].Cells[0].Text);//str_ID是成员变量        bindgridview2();
        bindgridview1();
}

解决方案 »

  1.   

    没有绑定好吧我个人认为还是用ajax去取数据比较好
      

  2.   

    前后台相互配合
    前台放一个hidden
    <input type="hidden" id="hiddenid" runat="server" />
    前台js方法 function getDataById(id) 

    document.getElementById("hiddenid").value = id;
    document.forms[0].submit();
    }后台添加gridview 的rowdatabound事件 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
        { 
            if (e.Row.RowType == DataControlRowType.DataRow) 
            { 
                string id = "";//获取id
                e.Row.Attributes.Add("onclick", "javascript:getDataById('"+id+"');"); 
            } 
        } protected void Page_Load(object sender, EventArgs e)
        {
                   if (!IsPostBack)
            {}
    if(hiddenid.Value.Length > 0)
    {
    string id = hiddenid.Value;
    hiddenid.Value = "";
    bindgridview2(id); 
    }
    }
      

  3.   

    加一下
    if (!IsPostBack) 
            {}