0

我在 webform 上有几个 DropDownLists,每个都指向一个 SqlDataSource。其中一些数据源使用这些 DropDownLists 之一作为选择参数,将列表过滤到特定类别。

对于某些用户,这些 DropDownLists 中的两个将被自动设置和禁用。

当我提交启用下拉列表的表单时,它工作正常,但是当它们被禁用时,DropDownList 的 SelectedValue 被重置为列表中的第一个。

我的 DropDownLists 构造如下:

<asp:DropDownList ID="ddlManager" runat="server" DataSourceID="dsManagers"
  EnableViewState="false" DataValueField="ManagerID" DataTextField="MgrName"
  AppendDataBoundItems="false" ondatabound="ddlManager_DataBound" >

下拉列表在数据绑定事件上添加了一个额外的项目,如下所示:

protected void ddlManager_DataBound(object sender, EventArgs e)
{
  this.ddlManager.Items.Insert(0, new ListItem("--Manager--", "--Manager--"));
}

任何人都可以解释为什么会这样吗?

谢谢

4

4 回答 4

1

这是设计使然。禁用控件的值未发布。使用其他一些机制。

于 2010-04-08T08:09:27.020 回答
1

或者,您可以读取/写入 aList<>Dictionary<>; 并在启用 DropDownList 框时将列表分配给您的数据源。DropDownList

于 2010-04-08T09:01:59.807 回答
0

我认为这很简单,就是没有启用。如果未启用,则无法保存值,并恢复为默认值。

于 2010-04-08T08:12:03.500 回答
0

为了补充 KMån 所说的内容,您还可以使用视图状态而不是列表。

于 2013-07-05T22:15:06.350 回答