Сделайте asp:TextBox внутри Repeater и запустите ItemCommand Repeater при нажатии Enter
У меня есть повторитель, который содержит TextBoxes и LinkButtons. Когда я нажимаю LinkButton, событие ItemCommand срабатывает ОК. Когда я нажимаю Enter в любом из текстовых полей, отправляется форма, внутри которой находится повторитель. В идеале, я бы хотел, чтобы при вводе в текстовое поле выполнялось то же действие, что и при нажатии кнопки LinkButton, поэтому я решил, что либо мне нужно программно "щелкнуть" по кнопке LinkButton при нажатии клавиши ввода, либо мне нужен способ запустить то же событие ItemCommand (с соответствующим именем / аргументом команды), которое выполняет LinkButton
Может ли кто-нибудь дать мне понять, как этого добиться? Спасибо
1 ответ
Вот возможный подход. В основном вы заверните TextBox
а также LinkButton
в панель. Панель предоставляет возможность указать кнопку по умолчанию - это кнопка, которая будет нажиматься, когда пользователь нажимает Enter
в текстовом поле внутри этой панели.
<ItemTemplate>
<asp:Panel ID="Panel1" runat="server" DefaultButton="LinkButton1">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Cmd" Text="FireCmd"/>
</asp:Panel>
</ItemTemplate>
Помните, что в FF может быть проблема с LinkButton
по умолчанию - вот пост, описывающий как проблему, так и решение. Однако это может быть устаревшим - пост был написан в 2007 году, с тех пор все могло измениться.