2010-12-07 10 views
1

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

  1. http://weblogs.asp.net/jeff/archive/2005/07/26/420618.aspx
  2. set linkbutton as default button for asp:panel in asp.net (Решение Ахмада)

любое понимание по этому вопросу, пожалуйста? спасибо :)

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

EDIT: вот грязный (я думаю) решение:

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; 
    } 
} 

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

+0

Что вам нужно, если вы нажмете клавишу ввода? Перенаправить на связанную страницу? –

ответ

1

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

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

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

+0

Да, я пробовал это. Форма состоит из asp: textbox и asp: linkbutton внутри панели asp: с свойством defaultbutton, установленным с идентификатором linkbutton. – David

+0

«DefaultButton из« Form1 »должен быть идентификатором элемента управления типа IButtonControl.», Это не сработает – thatsalok

0

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

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

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

Простой файл javascript решает это.

<bleepzter/>