如何在c#中获取禁用下拉列表的选定值

时间:2011-12-31 10:29:59

标签: c# asp.net drop-down-menu

在我的表单中有两个DropDownList控件。

启用第1个,禁用第2个。

选择第一个下拉列表后,我正在使用javascript更改第二个下拉列表的选定值。

工作正常。但是当我试图获得第二个下拉列表的选定值时,它将返回第一个元素的值(即'select')。

请参阅我的代码

<asp:DropDownList ID="ddlStartTime1" runat="server" AutoPostBack="false" 
 Width="70" Enabled="false"></asp:DropDownList>

注意:我正在使用javascript更改第二个(禁用)下拉列表的选定值。

Javascript代码:

$(document).ready(function() {
    $('#<%= ddlStartTime1.ClientID %>').change(function() {
        $('#<%= ddlEndTime1.ClientID %>').val($('#<%= ddlStartTime1.ClientID%>').val());
    })
});

是否有其他方法可以更改已禁用DropDownList的值?

3 个答案:

答案 0 :(得分:11)

如果您尝试在服务器上读取第二个下拉列表(禁用一个)的值,您将永远无法读取更新的值,因为禁用的控件中的数据将不会从客户端发回服务器。

您应该在将数据发布到服务器之前启用下拉列表,或者使用隐藏控件来保存已禁用下拉列表的数据。

答案 1 :(得分:1)

您需要添加input的其他hidden。每当您更改第一个DropDownList的值时,您都会更改第二个DropDownList的值和隐藏输入的值。

在服务器端,您不是在查看第二个DropDownList的值,而是查看隐藏输入的值。发布表单时,请确保隐藏值始终与第二个DDL同步。

答案 2 :(得分:0)

只需在隐藏字段中添加禁用下拉列表的值,然后从隐藏字段读取值,而不是dropdownlist。可能这会对您有所帮助。