DefaultButton панели 1 должен быть идентификатором элемента управления типа IButtonControl. ошибка в asp.net

У меня есть элемент управления Login, размещенный внутри элемента управления LoginView, содержащегося в PANEL. Я хочу установить кнопку входа в систему в качестве кнопки по умолчанию для этой панели. В представлении «Дизайн» невозможно установить кнопку по умолчанию. Поэтому я пытаюсь установить его с помощью кода.

Ниже приведен код:

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;
        }
    }
}

Я получаю оба элемента управления, то есть панель и кнопку, но код генерирует следующее сообщение об ошибке:

DefaultButton панели 1 должен быть идентификатором элемента управления типа IButtonControl.

Я также пытался использовать UniqueID вместо ClientID, но все та же проблема.

Может ли кто-нибудь помочь мне, как эту ошибку можно исправить? Спасибо, что поделились своим временем.


person IrfanRaza    schedule 28.06.2010    source источник


Ответы (2)


Я знаю, вы сказали, что пробовали ClientID и UniqueID, однако я использовал UniqueID, и у меня это сработало.

person PeterX    schedule 23.07.2013

Если вы переместите панель внутри шаблона входа: -

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

Тогда он будет работать без кода. Вы можете установить loginbuttontype="Image" или ссылку или кнопку в соответствии с вашими требованиями.

person Vaibhav Bhatia    schedule 02.09.2016