如题所说,在一个form上有两个DataGrid,想根据一个表所选择的行,动态的对另一个表进行
过滤,要求键盘、鼠标都可以,选择行头,格内都能做。本想用Table的rowchanged事件来做,
但发现如果不做修改,就不响应这类事件。请各位帮忙。
由于前几个问题总是没有几个人回答,所以这次也烦劳班主大人了。

解决方案 »

  1.   

    这个很简单啊,在主表所在的datagrid的CurCellChange事件里面添加代码即可
    这个事件只要是datagrid的cell变化都会触发。键盘、鼠标都可以,选择行头,格内都能做。
      

  2.   

    to:hawkalw (草鱼禾) 你那个帖子我回过了啊,这个方法可以实现你的效果的啊!
    //当dataGrid1中选中的行变化时,触发该函数.
    private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e) 
    {
    //清空当前zsmx的信息
    this.dataSet11.Tables["zsmx"].Clear();
    //根据clch查询得到dataGrid2要显示的值
    string s1=this.dataSet11.Tables["zslc"].Rows[this.dataGrid1.CurrentRowIndex]["clch"].ToString();
    this.sqlSelectCommand2.Parameters["@clch"].Value=s1;
    this.sqlDataAdapter2.Fill(this.dataSet11);
    //重新绑定dataGrid2,这样才能适时更新
    this.dataGrid2.SetDataBinding(this.dataSet11,"zsmx");
    }
      

  3.   

    可以添加LINKBUTTON,使用SELECTITEMCOMMAND实现,不过必须点在网格内
      

  4.   

    DataSet中有表parentTable、childTable,建立关系,把绑定到parentGrid,childTable绑定到childGrid,你只要定位parentGrid中的行,子表自动变childGrid也就变了