【问题标题】:SelectedValue of DropDownList is not the one I selected when Enabled=falseDropDownList 的 SelectedValue 不是我在 Enabled=false 时选择的
【发布时间】:2010-04-08 08:02:25
【问题描述】:

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

对于某些用户,其中两个 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--"));
}

谁能解释为什么会发生这种情况?

谢谢

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      或者,您可以读取/写入List&lt;&gt;Dictionary&lt;&gt;;和 assign the list 到您的 DropDownList 数据源,只要启用 DropDownList 框。

      【讨论】:

        【解决方案3】:

        我认为这只是没有启用的问题。如果未启用,则无法保存值,并恢复为默认值。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 2011-03-06
            • 1970-01-01
            • 1970-01-01
            • 2013-05-23
            • 1970-01-01
            • 2023-03-10
            • 1970-01-01
            • 2012-09-06
            • 1970-01-01
            相关资源
            最近更新 更多