LinkButton по умолчанию при входе на главную страницу

Я просмотрел и не нашел чистого решения для этого. Мой коллега нашел довольно грязное решение, но я не понимаю, почему решения в приведенных ниже ссылках не работают, когда я помещаю их на главную страницу. У меня есть главная страница, которая в основном имеет текстовое поле и кнопку ссылки, когда я нажимаю клавишу ввода, вместо этого вызывается кнопка по умолчанию для дочерней страницы.

  1. http://weblogs.asp.net/jeff/archive/2005/07/26/420618.aspx
  2. установить кнопку ссылки в качестве кнопки по умолчанию для asp: панель в asp. net (решение Ахмада)

Любое понимание этого, пожалуйста? Благодарность :)

Я опубликую грязное решение, когда доберусь до работы завтра.

РЕДАКТИРОВАТЬ: вот грязное (я думаю) решение:

string id = ctlToClick.UniqueID;
string someJavascript = //see below
EmailTextBox.Attributes.Add("OnKeyPress", someJavascript);

Javascript (поместил его здесь, чтобы StackOverflow мог его лучше отформатировать):

javascript:if (window.event){
    if(parseInt(window.event.keyCode) == 13){
    WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('" + id + "', '', true, 'Login', '', false, true));
    return false;
    }
}

Это действительно единственное решение для этого?


person David    schedule 07.12.2010    source источник
comment
Что вы хотите, когда нажимаете клавишу ввода? Перенаправить на связанную страницу?   -  person KMån    schedule 07.12.2010


Ответы (2)


Вы пытались установить defaultButton собственность?

<form id="Form1"
        defaultbutton="lnkNextPage" 
        runat="server">

Где lnkNextPage — это LinkButton идентификатор элемента управления.

person KMån    schedule 07.12.2010
comment
Да, я пробовал это. Форма состоит из asp:textbox и asp:linkbutton внутри asp:panel со свойством defaultbutton, для которого задан идентификатор linkbutton. - person David; 07.12.2010
comment
DefaultButton «Form1» должен быть идентификатором элемента управления типа IButtonControl. Это не сработает. - person thatsalok; 18.10.2012

Я думаю, вам нужен простой javascript для управления клавишами табуляции/ввода. Я столкнулся с этим до того, как не было возможности заставить работать стандартное решение кнопки.

Идея проста — проверяйте каждую клавишу, введенную в текстовое поле. Если введена клавиша ввода или вкладки, найдите кнопку с помощью jquery или document.GetElementById('id') и вызовите событие click на кнопке.

кнопка формы по умолчанию не работает в asp.net, поскольку а): есть только 1 форма и б): для разных текстовых полей вы хотите иметь возможность контролировать, какая кнопка фактически нажата (на вкладке/вводе).

Простой файл javascript решает эту проблему.

<bleepzter/>
person bleepzter    schedule 08.12.2010