在我的网络应用程序中,我有一个下拉列表和一个文本框。我想在下拉列表中禁用某些值的文本框。我为下拉列表中的selectedIndexChanged事件编写了代码。我将下拉列表的AutoPostBack属性设为true。
但是当我运行应用程序并从下拉列表中选择一个值时,它突然变为初始值。因此,我一直得到SelectedIndex的值0。我能为此做些什么?
答案 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);
}
});