【发布时间】:2020-10-21 12:23:50
【问题描述】:
我有小问题,我在下面分享了图片和代码。
我的代码块中有两个 datagridview。首先(表单左侧)datagridview 的名称searchDataGridView。这个网格通过一些过滤器显示我的数据库中的数据。第二个(表单右侧)datagridview 的名称 dataGridView1。如果我从第一个网格中选择一些行,则当我单击下一步按钮时,此网格会显示,然后这些行将添加到 dataGridView1。此代码块运行良好,但是当我单击下一步按钮并选择行并添加到 dataGridView1 时,我的问题是 searchDataGridVİew 将显示新项目,所选行将添加到 datagridView1,但是当我将新项目添加到 dataGridView 时,旧行将清除并且将添加新的选定行,但我需要新闻选定的行必须添加到旧行下。感谢您的帮助。
private void buttonNext_Click(object sender, EventArgs e)
{
Search searchObj = new Search();
DataTable dt = new DataTable();
dt.Columns.Add("Item");
dt.Columns.Add("Company");
dt.Columns.Add("Category");
dt.Columns.Add("Price");
foreach (DataGridViewRow drv in searchDataGridView.Rows)
{
bool chkboxselect = Convert.ToBoolean(drv.Cells["CheckBox"].Value);
if (chkboxselect)
{
dt.Rows.Add(drv.Cells[2].Value, drv.Cells[3].Value, drv.Cells[4].Value, drv.Cells[8].Value);
drv.DefaultCellStyle.BackColor = Color.Gray;
drv.DefaultCellStyle.ForeColor = Color.Aqua;
}
dataGridView1.DataSource = dt;
}
counter +=1;
if (counter == maxIndex)
{
counter =0;
}
try
{
searchCategoryComboBox.SelectedIndex = counter;
}
catch (System.ArgumentOutOfRangeException) // CS0168
{
MessageBox.Show("hata yakalandı");
return;
}
//catch for error outofrange
searchCategoryComboBox.SelectedIndex =counter;
searchObj.Company = searchCompanyComboBox.Text;
searchObj.Category = searchCategoryComboBox.Text;
SearchManager searchMangObj = new SearchManager();
DataTable dt2 = searchMangObj.SearchInfo(searchObj);
searchDataGridView.DataSource = dt2;
textBox1.Text = String.Empty;
}
【问题讨论】:
-
好吧。我擦掉了。
标签: c# sql-server datagridview