【发布时间】:2019-02-17 03:51:19
【问题描述】:
我创建了一个 DataGridView,然后在编码中手动为其检索数据。另外,我添加了一个 DataGridViewButtonCell,它工作正常。但我想根据另一列(状态列索引为 4)值对其进行自定义。
例如。
- 如果状态列值为“新建”,则希望显示 form1
- 如果状态列值为“打开”,则希望显示 form2
- 如果状态列值为“已分配”,则希望显示 form3
- 如果状态列值为“重复”、“推迟”和“重复”想显示 form4
我该如何做这个过程?这是数据网格视图的图像
![1]: https:C:\Users\kularathna\Desktop\New.PNG
这是将数据检索到 dataGridView 的代码
private void TesterHome_Load(object sender, EventArgs e)
{
// Retriewe Data from database to the grid view
SqlConnection con = new SqlConnection("Data Source= LAPTOP-J70EHC58 ; Initial Catalog= Defect_Management_system ; Integrated Security = True ; Connect Timeout = 30 ; ");
SqlDataAdapter adapter = new SqlDataAdapter();
string sqlstmt = SELECT * FROM defect WHERE tester_id = '"+ 5 +"' ;
DataSet dataSet = new DataSet();
try
{
con.Open();
adapter = new SqlDataAdapter(sqlstmt, con);
adapter.Fill(dataSet);
con.Close();
dgvTester.DataSource = dataSet.Tables[0];
}
catch (Exception error)
{
MessageBox.Show(error + "Invalid");
}
// Insert Data Grid View Button
DataGridViewButtonColumn dgvbtnColumn = new DataGridViewButtonColumn();
dgvTester.Columns.Add(dgvbtnColumn);
dgvbtnColumn.HeaderText = " ";
dgvbtnColumn.Text = "View";
dgvbtnColumn.Name = "dgvBtn";
dgvbtnColumn.UseColumnTextForButtonValue = true;
}
// Code for grid view button cell
private void dgvTester_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
{
try
{
var senderGrid = (DataGridView)sender;
if (senderGrid[e.ColumnIndex, e.RowIndex] is DataGridViewButtonCell)
{
//if(senderGrid[e.ColumnIndex, e.RowIndex] is DataGridViewTextBoxCell.Value = "New")
{
QA_ReviewForm qa = new QA_ReviewForm();
qa.Show();
}
}
}
catch (Exception error)
{
MessageBox.Show(error + "Invalid");
}
}
我尝试过使用
if(senderGrid[e.ColumnIndex, e.RowIndex] 是 DataGridViewTextBoxCell.Value = "New") 行
但它不起作用
【问题讨论】:
-
it is not working是什么意思?你有什么错误吗? -
Yes 在该行显示错误
-
显示什么错误?
-
代码错了吗?如何根据状态列值自定义
-
如果它没有按预期工作那么它是错误的。如果您分享您遇到的错误,那么可以建议适当的解决方案。
标签: c# sql-server