“'Panel1'的DefaultButton必须是IButtonControl类型的控件的ID。” asp.net中的错误

时间:2010-06-28 08:54:42

标签: c# asp.net login-control

我在一个PANEL中包含的LoginView控件中放置了一个Login控件。我想将登录按钮设置为此面板的默认按钮。在设计视图中无法设置默认按钮。所以我想尝试使用代码设置它。

以下是代码:

protected void SetDefaultButtonForLoginControl()
{
    Login loginCtrl =  (Login)LoginView1.FindControl("Login1");
    Panel panel1 = (Panel)LoginView1.FindControl("Panel1");

    if (loginCtrl != null)
    {
        Button btn = (Button)loginCtrl.FindControl("btnLogin");
        if (btn != null)
        {
            panel1.DefaultButton = btn.ClientID;
        }
    }
}

我正在获取控件,即Panel和Button,但代码会生成以下错误消息 -

  

'Panel1'的DefaultButton必须是IButtonControl类型的控件的ID。

我也尝试使用UniqueID而不是ClientID,但仍然存在同样的问题。

任何人都可以帮助我,如何纠正这个错误?谢谢你分享你的时间。

2 个答案:

答案 0 :(得分:1)

我知道你说过你曾尝试ClientIDUniqueID,但是我使用UniqueID并且它对我有用。

答案 1 :(得分:0)

如果您在登录模板中移动面板: -

<asp:login id="Login2" runat="server" loginbuttontype="Image">
<layouttemplate>
<asp:`enter code here`panel id="Panel1"   runat="\
 server"defaultbutton="LoginImageButton">
</asp:Panel>

  

然后它将无法使用代码。您可以根据需要设置loginbuttontype =“Image”或链接或按钮。