如何根据数据网格视图中的另一列值在数据网格视图中处理自定义按钮事件

时间:2019-02-15 05:39:37

标签: c# sql-server

我创建了一个程序,用于以编程方式将数据从数据库检索到数据网格视图。一切正常。然后,我将按钮列添加到了数据网格视图,并为此编写了按钮处理事件。该按钮显示在网格视图中,但是当我单击它时,什么也没有发生。

数据网格视图

enter image description here

下面是我的源代码:

private void TesterHome_Load(object sender, EventArgs e)
        {
            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";
            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");
            }

            DataGridViewButtonColumn dgvbtnColumn = new DataGridViewButtonColumn();
            dgvTester.Columns.Add(dgvbtnColumn);
            dgvbtnColumn.HeaderText = "";
            dgvbtnColumn.Text = "View";
            dgvbtnColumn.Name = "dgvBtn";
            dgvbtnColumn.UseColumnTextForButtonValue = true;
        }

        private void dgvTester_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            var senderGrid = (DataGridView)sender;

            if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >= 0)
            {
                QA review form qa = new QA review form();
                qa.show();
            }
        }

此表具有一个状态列。我想根据状态自定义按钮。

例如

  • 如果状态为,则单击查看按钮以打开新缺陷 表单

  • 如果状态为打开,则单击查看按钮以打开质量检查评论 表格

  • 如果状态是已分配,则单击查看按钮可打开 d eveloper审核表

  • 如果状态为重复推迟推迟,则 点击查看按钮,打开重新打开表单

0 个答案:

没有答案