«DefaultButton для Panel1 должен быть идентификатором элемента управления типа IButtonControl». ошибка в asp.net - PullRequest
3 голосов
/ 28 июня 2010

У меня есть элемент управления Login, помещенный в элемент управления LoginView, содержащийся в ПАНЕЛИ. Я хочу установить кнопку входа в систему в качестве кнопки по умолчанию для этой панели. В режиме конструктора невозможно установить кнопку по умолчанию. Поэтому я пытаюсь установить его с помощью кода.

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

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 'Panel1' должен быть идентификатором элемента управления типа IButtonControl.

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

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

Ответы [ 2 ]

1 голос
/ 23 июля 2013

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

0 голосов
/ 02 сентября 2016

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...