请问在不更改DataSource的情况下,如果使DataGrid只显示满足一定条件的行?
我试过下面这样做无反应
((DataSet)dataGrid1.DataSource).Table[dataGrid1.DataMember].DefaultView.RowFilter = "id=4";
我试过下面这样做无反应
((DataSet)dataGrid1.DataSource).Table[dataGrid1.DataMember].DefaultView.RowFilter = "id=4";
dv.RowFilter = "id=4";
dataGrid1.DataSource = dv;
dv.RowFilter = "id=4"; //文本时 "id='4'"
dataGrid1.DataSource = dv;
如果你真的不想修改的话,按条件历遍DataGrid的Row和Cell
for( int i = 0; i < ((DataSet)dataGrid1.DataSource).Table[0].Rows.Count; i++ )
{
if( ((DataSet)dataGrid1.DataSource).Tables[0].Rows[i]["id"].ToString().Trim() != "4" )
{
((DataSet)dataGrid1.DataSource)..Tables[0].Rows[i].Delete();
}
}然后你什么后还想要使用原来的DataTable.就用
((DataSet)dataGrid1.DataSource).Tables[0].RejectChanges();可以了。
DataTable m_objDataTable = m_dsResult.Tables.Add("PersonMessage");
DataRow objDataRow = m_objDataTable.NewRow();
if (id == 4)
{
m_objDataTable.Rows.Add(objDataRow);
}
DataGrid.SetDataBinding(m_dsResult, "PersonMessage");
为什么改变DataGrid.DataSource中的表的DefaultDataView的RowFilter没有用?怎样才能引用DataGrid绑定的数据表的DefaultDataView?
在WinForm中放一个DataView,把DataGrid的DataSource指向这个DataView,然后在DataGrid的CurrentCellChanged中处理其他TextBox的同步显示问题。