我已经对我遇到的这个错误进行了一些研究,但没有运气。我正在使用一个 asp.panel,里面有几个控件。如果满足某些条件,面板将可见或不可见。如果它是可见的,我会有一些文本框和一个按钮。当我单击按钮时,我收到此错误:“无法选择禁用或不可选择的菜单项。”
这是aspx代码:
<asp:Panel ID="pnlTrocaSenha" runat="server" Visible="false">
<asp:Label ID="Label3" runat="server" Font-Size="XX-Small">Este é o seu primeiro
acesso ao sistema. Favor cadastrar sua senha:</asp:Label>
<br />
<asp:TextBox ID="txtSenha" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvSenha" runat="server" ControlToValidate="txtSenha"
Display="Dynamic" ErrorMessage="Senha Requerida">Senha Requerida</asp:RequiredFieldValidator>
<br />
<asp:Label ID="Label4" runat="server" Font-Size="XX-Small">Confirme a senha</asp:Label>
<br />
<asp:TextBox ID="txtConfirma" runat="server" TextMode="Password"></asp:TextBox>
<asp:CompareValidator ID="cvSenha" runat="server" ControlToCompare="txtSenha" ControlToValidate="txtConfirma"
Display="Dynamic" ErrorMessage="*">Senha não bate com a confirmação</asp:CompareValidator>
<asp:RequiredFieldValidator ID="rfvConfirma" runat="server" ControlToValidate="txtConfirma"
Display="Dynamic" ErrorMessage="Confirmação Requerida"></asp:RequiredFieldValidator>
<br />
<br />
<asp:Button ID="btnTrocar" runat="server" Text="Confirmar" CssClass="btnPadrao" OnClick="btnTrocar_Click" /><br />
<asp:Label ID="lblMsg" runat="server" Text=""></asp:Label>
</asp:Panel>
protected void Page_Load(object sender, EventArgs e)
{
Session["estado"] = null;
if(Request.QueryString["acao"] != "sair")
base.Page_Load(sender, e);
if (!Page.IsPostBack)
{
if (Request.QueryString["acao"] == "sair")
{
Sair();
}
var usuario = (CUsuario) Session["usuario"];
if (!usuario.getSenhaAlterada())
{
pnlTrocaSenha.Visible = true;
}
else
{
pnlTrocaSenha.Visible = false;
}
}
}
protected void btnTrocar_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
if (!Util.ValidarSenhaForte(txtSenha.Text))
{
lblMsg.Text = "A senha precisa ter no minimo 8 caracteres e conter numeros e letras";
return;
}
string senhaCriptografada = FormsAuthentication.HashPasswordForStoringInConfigFile(this.txtSenha.Text, "MD5");
var usuario = (CUsuario) Session["usuario"];
DBAccess dao = new DBAccess();
usuario.setSenha(senhaCriptografada);
usuario.setSenhaAlterada(true);
dao.AtualizarUsuario(usuario, Session["idUsuario"].ToString(), (CUsuario)Session["usuario"]);
pnlTrocaSenha.Visible = false;
}
}
我认为只有在使用 asp.menu 时才会出现此错误....在此先感谢。