Основная страница 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 = "Изображение" или ссылку или кнопку в соответствии с вашими требованиями.