DropdownList的SelectedValue不是我在Enabled = false时选择的

时间:2010-04-08 08:02:25

标签: asp.net drop-down-menu selectedvalue

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

对于某些用户,将自动设置和禁用其中两个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 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

或者,您可以读/写List<>Dictionary<>;只要启用了DropDownList框,就可以assign the listDropDownList数据源。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

要添加到KMån所说的内容,您还可以使用视图状态而不是列表。