c# - DropDownList.SelectedValue 未生效
问题描述
这似乎是一个重复的问题,但我认为不是。我asp:DropDownList
在 ASPX 页面中设置我的,并在检查当前 gridview 行是否正在编辑后在事件SelectedValue
期间设置它。RowDataBound
当我设置控件的属性时没有抛出错误,SelectedValue
当我在设置后立即检查它时,它没有改变。
这是相关代码
<asp:SqlDataSource
ID="DataSourceAnswerGroups"
runat="server"
ConnectionString="<%$ ConnectionStrings %>"
DataSourceMode="DataSet"
SelectCommand="
SELECT
Id
,Description
FROM dbo.table
WHERE Active = 1
ORDER BY Description
;
" />
<asp:GridView
ID="GridView"
runat="server"
OnRowDataBound="GridView_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Answer Group" SortExpression="AnswerGroup" ItemStyle-Wrap="false" ItemStyle-CssClass="left">
<ItemTemplate>
<%# Eval("AnswerGroup") %>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList
ID="ddlAnswerGroupEdit"
runat="server"
DataSourceID="DataSourceAnswerGroups"
DataValueField="Id"
DataTextField="Description"/>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
背后的代码
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowIndex == GridView.EditIndex)
{
DropDownList ddlAnswerGroupEdit = (DropDownList)e.Row.FindControl("ddlAnswerGroupEdit");
ddlAnswerGroupEdit.SelectedValue = GridView.DataKeys[e.Row.RowIndex].Values["AnswerGroupId"].ToString();
Response.Write(GridView.DataKeys[e.Row.RowIndex].Values["AnswerGroupId"].ToString() + "<br/>"); // this outputs the correct guid
Response.Write(ddlAnswerGroupEdit.SelectedValue + "<br/>"); // this always outputs the same guid, the one that represents the first item on the list.
}
}
代码中的任何地方都没有对 DdataSource 或 DropDownList 进行其他操作。默认选择应该会改变,但它会默默地失败。任何帮助,将不胜感激。
解决方案
你在哪里绑定 AnswerGroupId?
代替它
ddlAnswerGroupEdit.SelectedValue = GridView.DataKeys[e.Row.RowIndex].Values["AnswerGroupId"].ToString();
上
ddlAnswerGroupEdit.SelectedValue = GridView.DataKeys[e.Row.RowIndex]["AnswerGroupId"].ToString();
推荐阅读
- javascript - 使用 Javascript style.fontWeight.value 获取 CSS 字体粗细值(未定义,期望值)
- kubernetes - Netshoot Sidecar 容器 CrashLoopBackOff
- javascript - 带有时区偏移的 javascript date.toString("yyyy-MM-ddTHH:mm:ss.fffZ") 或 "yyyy-MM-dd HH:mm:ss ZZ"
- json - 使用 utf-8 编码的 Wiremock 问题
- ios - 从 SwiftUI 中的数组中提取唯一项和计算
- email - 我收到使用 laravel 和 mailgun 发送邮件的危险消息
- reactjs - 如何使用 fetch 订购 useEffect 挂钩
- similarity - 检查 x 文本之间的相似度
- c# - 我可以将 .NET 5 COM 互操作对象与 VB6 连接起来吗?
- rxjs - RxJS 观察者是否总是在 observable 完成之前处理所有提交的事件?