【发布时间】:2012-12-06 09:01:39
【问题描述】:
如果选择了 4 个属性列表中的 2 个选项之一,我的项目中有单选按钮应该被禁用。这是我的代码:
<asp:DropDownList ID="drpLType" runat="server" CssClass="drp">
<asp:ListItem Value="0" Selected="True">Professional</asp:ListItem>
<asp:ListItem Value="1">Enterprise</asp:ListItem>
<asp:ListItem Value="2">Maintanence</asp:ListItem>
<asp:ListItem Value="3">Reporting</asp:ListItem>
</asp:DropDownList>
我为此使用了 javascript:
function funMeapSupportValidate(val)
{
switch(val)
{
case "0" :
document.getElementById('<%=this.rdoMeapSupport.ClientID%>').disabled = false;
break;
case "1" :
document.getElementById('<%=this.rdoMeapSupport.ClientID%>').disabled = false;
break;
case "2" :
document.getElementById('<%=this.rdoMeapSupport.ClientID%>').check = false;
document.getElementById('<%=this.rdoMeapSupport.ClientID%>').disabled = true;
break;
case "3" :
document.getElementById('<%=this.rdoMeapSupport.ClientID%>').check = false;
document.getElementById('<%=this.rdoMeapSupport.ClientID%>').disabled = true;
break;
default:
break;
}
}
在我的后端代码:
protected void drpLType_SelectedIndexChanged(object sender, EventArgs e)
{
if (drpLType.SelectedValue == "Professional")
{
rdoMeapSupport.Enabled = true;
}
if (drpLType.SelectedValue == "Enterprise")
{
rdoMeapSupport.SelectedValue = null;
rdoMeapSupport.Enabled = true;
}
if ((drpLType.SelectedValue == "Maintanence") || (drpLType.SelectedValue == "Reporting"))
{
rdoMeapSupport.Enabled = false;
rdoMeapSupport.ClearSelection();
}
}
现在的问题是我的网站上有两个按钮。每当我单击这些按钮时,即使我选择了 Maintenance 或 Reporting ,单选按钮也会被激活。如何禁用它?
在我的页面加载:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Tab1.CssClass = "Clicked";
MainView.ActiveViewIndex = 0;
if (drpLType.SelectedValue == "Professional")
{
rdoMeapSupport.Enabled = true;
rdoMeapSupport.SelectedValue = "Yes";
}
drpLType_SelectedIndexChanged();
}
drpLType.Attributes.Add("onchange", "javascript:funMeapSupportValidate(this.value);");
}
【问题讨论】:
-
您有没有想过在页面回发中
drpLType_SelectedIndexChanged事件不会触发? -
所以我应该在页面加载时调用该函数吗?
-
您的 asp.net 代码中似乎没有关联该事件 - 您是在代码隐藏中设置它还是只是忘记关联它?
-
我在页面加载时调用 js。但仍然没有发生任何事情。
-
你在使用任何 ajax 更新面板吗?您正在将页面加载时的 onchange 事件附加到下拉列表,您应该直接调用函数或再次调用 selectedindex 更改事件中的 C# 代码。使用 jquery document.ready。
标签: c# javascript asp.net radio-button