1

我正在处理一个 ASP.net 项目,并且有一个 gridview,它有一个来自 sql 数据库的数据集作为数据源。

当我更改 gridview 中的值时,我想更新数据集,以便我可以使用该数据集再次更新数据库。

我到目前为止的声明。

这是我遇到麻烦的部分。我可以获取选定的行,但不能获取用于更新数据集的选定列名。

 myDataSet.Tables[0].Rows[e.RowIndex][?] = "";

RowUpdating 事件的完整代码。

protected void grdViewDetails_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
               //Just get the dataset populated from my database (sql)
                DataSet dsOriginal = dbConn.returnSqlDataset(query);

                //update the dataset here so that you can update the database again.
                foreach (TableCell cell in grdViewDetails.Rows[e.RowIndex].Cells)
                {
                    //set the employeeid so you can update the dataset
                    if (cell.Controls[0] is TextBox)
                    {
                        TextBox textbox = (TextBox)cell.Controls[0];
                        string value = textbox.Text; //This is just a tester to see if the value is correct
                     //   dsOriginal.Tables[0].Rows[e.RowIndex][?] = value; //Here is the problem, how to get the selected column name

                    }
                    else
                    {
                        if (cell.Controls[0] is CheckBox)
                        {
                            CheckBox chkBoxWeek = (CheckBox)cell.Controls[0];
                            Boolean checkStatus = chkBoxWeek.Checked;  //This is just a tester to see if the value is correct
                          //dsOriginal.Tables[0].Rows[e.RowIndex][?] = checkStatus; //Here is the problem, how to get the selected column name
                        }
                    }
                }

                //Use the updated dataset to update the database with.
                dbConn.udpatCourse(dsOriginal );


            }
4

1 回答 1

1

您可以遍历GridViewUpdateEventArgs.NewValues集合以找出已更新的内容。

这略微改编自链接的 MSDN 文档:

foreach (DictionaryEntry entry in e.NewValues)
{
    string columName = entry.Key;
    string userInput = e.NewValues[entry.Key];
    // Now you can do stuff with this info that meets your logic needs
}

如果我正确阅读了您的问题,您应该能够从这里获得所需的内容。

于 2013-04-15T16:44:16.973 回答