我对 ASP.NET 非常陌生,并且通常是真正的编程。我有一个 GridView,我在 RowDataBound 事件中的编辑时添加了一个 DropDownList。现有控件是只读的,似乎不会在编辑时显示。
protected void GridViewVehicles_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowState == DataControlRowState.Edit)
{
DropDownList ddlVehicles = GetVehicles();
string make = e.Row.Cells[9].Text;
ddlVehicles.Items.FindByText(reportsTo).Selected = true;
e.Row.Cells[10].Controls.Add(ddlVehicles);
}
}
}
问题是我似乎无法访问 RowUpdating 事件中 DropDownList 的选定值。该表格单元格的控件计数似乎为 0。以下抛出和参数超出范围异常。
protected void GridViewEmployees_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string vehicle = ((DropDownList)(row.Cells[10].Controls[0])).SelectedValue;
}
在 Chrome 调试器中,我确实看到发布了正确的值,但我就是不知道如何访问它。
我已经读到可以为 DropDownList 使用 OnSelectedIndexChanged 事件并将值存储在 ViewState 中,但我也遇到了困难。
任何关于如何最好地进行的指导将不胜感激。提前致谢!