Переопределение DefaultButton главной страницы ASP.NET

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

т.е. на главной странице:

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

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

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

Это ошибки с:

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

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

Есть идеи о том, что я делаю неправильно, или о другом подходе к проблеме?

Спасибо


person Dieter G    schedule 01.09.2010    source источник
comment
Какой тип это ibRecalc? Реализует ли он указанный интерфейс?   -  person Tahbaza    schedule 01.09.2010
comment
@Tahbaza: ibRecalc - это элемент управления ASP.NET ImageButton, то есть он реализует IButtonControl   -  person Dieter G    schedule 01.09.2010


Ответы (3)


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

this.Form.DefaultButton = this.ibRecalc.UniqueID;
person Rebecca Chernoff    schedule 01.09.2010

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

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

// стартовая панель

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

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

// Контроль вашего требования

..........

asp: Button ID = "btnSearch" runat = "server" Text = "Search"

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

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

person Jinna Balu    schedule 11.12.2014
comment
Это интересно, тогда вы сможете иметь кнопки по умолчанию для нескольких панелей на одной странице. Отлично. - person Andrew Grinder; 13.03.2015

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

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

person Vaibhav Bhatia    schedule 02.09.2016