如果再想选中一行重新查询绑定
时间: 2023-08-30 08:04:23 浏览: 52
jQuery Table点击选中表格行变色代码.zip
如果你想在选择另外一行后重新查询并绑定数据,可以将现有的代码封装成一个方法,然后在需要重新查询时调用这个方法即可。例如:
```csharp
private void BindData()
{
if (dgvDataQuery.SelectedRows.Count == 0)
{
// 没有选中的行,不做任何处理
return;
}
string sn = dgvDataQuery.SelectedRows[0].Cells["SN"].Value.ToString();
DataTable processZZ = objDataQueryService.ProcessZZ(sn);
processZZ.Columns.Add("Station", typeof(string));
processZZ.Columns["Station"].SetOrdinal(0);
foreach (DataRow row in processZZ.Rows)
{
row["Station"] = "组装";
}
DataTable processGN = objDataQueryService.ProcessGN(sn);
processGN.Columns.Add("Station", typeof(string));
processGN.Columns["Station"].SetOrdinal(0);
foreach (DataRow row in processGN.Rows)
{
row["Station"] = "功能";
}
DataTable processLH = objDataQueryService.ProcessLH(sn);
processLH.Columns.Add("Station", typeof(string));
processLH.Columns["Station"].SetOrdinal(0);
foreach (DataRow row in processLH.Rows)
{
row["Station"] = "老化";
}
DataTable processBZ = objDataQueryService.ProcessBZ(sn);
processBZ.Columns.Add("Station", typeof(string));
processBZ.Columns["Station"].SetOrdinal(0);
foreach (DataRow row in processBZ.Rows)
{
row["Station"] = "包装";
}
DataTable processCK = objDataQueryService.ProcessCK(sn);
processCK.Columns.Add("Station", typeof(string));
processCK.Columns["Station"].SetOrdinal(0);
foreach (DataRow row in processCK.Rows)
{
row["Station"] = "出库";
}
processZZ.Merge(processGN);
processZZ.Merge(processLH);
processZZ.Merge(processBZ);
processZZ.Merge(processCK);
dtData = processZZ;
dgvProgress.DataSource = dtData;
// 清空 SN 值
dgvDataQuery.SelectedRows[0].Cells["SN"].Value = null;
}
```
然后在需要重新查询时,调用 BindData() 方法即可。例如:
```csharp
private void dgvDataQuery_SelectionChanged(object sender, EventArgs e)
{
BindData();
}
```
这样在选择另外一行后,就会重新查询并绑定数据,并将原先选中行的 SN 值清空。需要注意的是,dgvDataQuery_SelectionChanged 事件在每次选中行发生变化时都会触发,需要进行相应的判断。
阅读全文