关键代码如下:
#region 获取当前选中的集合 + public static void GetSelectedIndex(YPTrueDbGrid trueDbGrid, ModleTreeModel model)
public static void GetSelectedIndex(YPTrueDbGrid trueDbGrid, ModleTreeModel model)
{
if (trueDbGrid == null || model.Orders == null)
return;
else if (trueDbGrid.SelectedRows.Count <= 0)
return;
model.Orders.Clear();
model.Rows.Clear();
foreach (int i in trueDbGrid.SelectedRows)//遍历SelectedRows属性获取客户选中行
{
//如果不存在系统指定列则抛异常
if (trueDbGrid.GetCellValue(i, DataListColConfig.SprCol_Code).YPFilterDbNull().YPIsNullOrEmpty() || trueDbGrid.GetCellValue(i, DataListColConfig.SprCol_Status).YPFilterDbNull().YPIsNullOrEmpty())
{
throw new Exception("code或status为空");
}
int status = trueDbGrid[i, DataListColConfig.SprCol_Status].YPFilterDbNull().YPToInt();
model.Orders.Add(new OrderModel(trueDbGrid[i, DataListColConfig.SprCol_Code].YPFilterDbNull(), GlobalVar.Dic_OrderOprStatus[status]));
DataRowView row = trueDbGrid as DataRowView;
model.Rows.Add(row);
}
}
#endregion 获取当前选中的集合
/////调用代码,在RowColChange事件中获取选中行好像经常获取的不对
private void TrueDbGridHeader_RowColChange(object sender, C1.Win.C1TrueDBGrid.RowColChangeEventArgs e)
{
DataListExBll.GetSelectedIndex(this.TrueDbGridHeader, Model);
LoadDetailData();
}
private void LoadDetailData()
{
FilterModel filter = new FilterModel();
if (Model.Orders.Count > 0)
{
filter.sqlwhere.Append(" AND CODE='" + Model.Orders[0].Code + "'");
}
if ((TrueDbGridHeader.DataSource as DataTable).Rows.Count <= 0)
{
filter.sqlwhere.Append(" AND 1=2");
}
DataListExBll.LoadData(Model, TrueDbGridDetail, filter, "View_" + Model.ywtype + "dtl", true);
} |
|