一家之计在于和,一生之计在于勤。
分类:
2008-04-07 18:52:52
将在datagridview中的两个comboBox中数据相关联
为了将在datagridview中的两个comboBox中数据相关联,即当单击其中的一个comboBox的时候,就会自动的去根据另一个comboBox来取得对应的值。(DataGridViewTreeViewColumn.cs 中的InitializeEditingControl()方法)
dataview 设置 ROWFILTER 后通过 DATAVIEW.COUNT 能获得符合FILTER 的记录数,但如何遍历这些符合条件的记录呢?答案是:直接用foreach
DataView dvTree = new DataView(myDataSet.Tables[0]);
dvTree.RowFilter = "[PARENT] = " + iParent;
foreach(DataRowView Row in dvTree)
{
}
比如:
/*add by xcx:2008-03-17
* 先取得该员工的职称系列,然后又用“职称系列”去查职称系列对应的“职称系列的sn”
* 最后才用这个sn去“like sn*%”
*/
if (column.Name == "engaged_title" || column.Name == "technic_title")//编辑的列为职称名称
{
string number = DataGridView.CurrentRow.Cells["employee_number"].Value.ToString();//获得当前行的员工编号
DataRow[] dr = staticCommonClass.pesonnelDataset.t_employee_technical_title.Select("employee_number = '" + number + "'");//获得当前行的员工在“专业技术职称子表”中行数据
if (dr.Length > 0)
{
string ts = dr[0]["title_series"].ToString();//取得该员工的职称系列
DataRow[] drow = staticCommonClass.sysDataSet.t_title_series_values.Select("value = '" + ts + "'");//取得该员工的职称系列数据字典中对应的行数据
if (drow.Length > 0)
{
sn = drow[0]["sn"].ToString();//取得该员工的职称系列数据字典中对应的序号sn
}
}
DataView dv = new DataView(staticCommonClass.sysDataSet.Tables[column.Tag.ToString()]);//(staticCommonClass.sysDataSet.t_special_title_values.)
dv.RowFilter = ""; //清除上次过滤得到的值
dv.RowFilter = "sn like '" + sn + "*'";//过滤得到与职称系列对应的技术职称的值
/* dataview 设置 ROWFILTER 后通过 DATAVIEW.COUNT 能获得符合FILTER 的记录数,
* 但如何遍历这些符合条件的记录呢?答案是:直接用foreach
*/
foreach (DataRowView row in dv)
{
TreeNode root = new TreeNode(row[2].ToString());
root.Tag = row[2].ToString();
ctl.TreeView.Nodes.Add(root);
}
}