Основная страница ASP.NET DefaultButton override

У меня есть главная страница с элементом формы и атрибутом defaultbutton, установленным на ImageButton на стороне сервера. На одной из моих страниц я хочу "переопределить" атрибут masterbutton главной страницы, установив Forms DefaultButton в событие Page_Load.

т.е. На странице mater:

<form id="form1" runat="server" defaultbutton="btnSearch">....</from>

На странице Page_Load событие, которое "переопределяет" атрибут главной страницы:

this.Form.DefaultButton = this.ibRecalc.ID;

Это ошибки с:

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

Я использую кнопки изображений, которые реализуют IButtonControl

Любые идеи о том, что я могу делать неправильно или по-другому подойти к проблеме?

Спасибо

Ответы

Ответ 1

Используйте UniqueId. Так как у вас может быть несколько серверных элементов управления с одним и тем же идентификатором сервера, то есть в GridView, инфраструктуре должен соответствовать уникальный идентификатор, соответствующий ему.

this.Form.DefaultButton = this.ibRecalc.UniqueID;

Ответ 2

Вы можете попробовать использовать свойство "DefaultButton" панели...

Поместите вашу кнопку или целую страницу или div в asp: Панель

//панель запуска

asp: Panel ID = "pnlOpsCallSummay" runat = "server" DefaultButton = "btnSearch"

............

//Управляет вашим требованием

..........

asp: Button ID = "btnSearch" runat = "server" Текст = "Поиск"

закрыть панель

Нет необходимости переопределять кнопку главной страницы

Ответ 3

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

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

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