下拉列表的SelectedIndex属性

时间:2012-02-09 11:13:49

标签: asp.net

在我的网络应用程序中,我有一个下拉列表和一个文本框。我想在下拉列表中禁用某些值的文本框。我为下拉列表中的selectedIndexChanged事件编写了代码。我将下拉列表的AutoPostBack属性设为true。

但是当我运行应用程序并从下拉列表中选择一个值时,它突然变为初始值。因此,我一直得到SelectedIndex的值0。我能为此做些什么?

3 个答案:

答案 0 :(得分:0)

如果您在onPageLoad事件中初始下拉列表,则必须检查它是否为回发,如果是,则不要再次初始化。

protected void OnLoad(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
      // init dropdownlist here
    }
}

答案 1 :(得分:0)

你正在做回发来实现这一目标是一种过度杀伤和缓慢。在该下拉列表中选择某些选项时,应使用客户端脚本(javascript)禁用文本框。根据您使用的是普通js还是jquery或其他内容,这种实现方式会有所不同。

答案 2 :(得分:0)

您可以非常轻松地禁用文本框客户端,以便将AutoPostBack属性添加到下拉列表中。

如果您想通过添加此属性来执行其他操作,请提供更多详细信息,以便我们根据您的要求为您提供最佳答案。

要使其禁用客户端,您可以按照以下代码进行操作:

<强> HTML:

<select name="ddlSample" id="ddlSample">
    <option value="1">Enable text box</option>
    <option value="2">Disable text box</option>
</select>
<br />
<input name="txtCode" type="text" id="txtCode" />

<强> JQuery的:

$("#ddlSample").change(function(){
    if($(this[this.selectedIndex]).val()=="1")
    {
        $("#txtCode").attr("disabled",false);
        $("#txtCode").focus();    
    }    
    else
    {
        $("#txtCode").attr("disabled",true);
    }    
});