Событие щелчка LinkButton не срабатывает, если какое-либо действие, выполненное с клавишей ENTER, вместо нажатия кнопки

1

Существует ImageButton и LinkButton, объединенные в промежутке и ограниченные одним и тем же ClickEvent для выхода из текущего местоположения. Изображение 174551 На той же странице есть searchTextBox и кнопка, чтобы начать действие поиска.

Теперь проблема заключается в следующем:

  • Когда я ввожу текст в текстовое поле и нажимаю ENTER, чтобы выполнить действие поиска (он искал данные), а затем нажал на LinkButton для выхода, событие LinkButton не срабатывает, но событие imageButton запускается.
  • Выполнял то же действие, что и выше, но вместо того, чтобы нажать ENTER для поиска, я нажал кнопку поиска, а затем я нажимаю LinkbUtton для выхода. Теперь событие срабатывает при щелчке как с ImageButton, так и с LinkButton.

Почему работает только событие ImageButton, а не событие LinkButton, когда я ищу текст, нажав клавишу ENTER.

        LinkButton newUtilityLink;

        //Separator
        Panel_UtilityLink.Controls.Add(CreateUtilityLinkSeparator());

        HtmlGenericControl span = new HtmlGenericControl("span");
        span.ID = "ExitSpanId";
        span.AddCssClass("exitspan");

        ImageButton buttonExit = new ImageButton();
        buttonExit.ID = "IDButtonExit";
        buttonExit.ImageUrl = "~/WebResources/Exit.gif";
        buttonExit.Click += new ImageClickEventHandler(UtilityLink_Click);
        buttonExit.ImageAlign = ImageAlign.Bottom;
        span.Controls.Add(buttonExit);

        newUtilityLink = new LinkButton();
        newUtilityLink.ID = "IDULinkExit";
        newUtilityLink.Text = "Exit";
        newUtilityLink.Attributes.Add("EVENT", "eventExit");
        newUtilityLink.Click += new EventHandler(UtilityLink_Click); 
        span.Controls.Add(newUtilityLink);

        Panel_UtilityLink.Controls.Add(span);

Редактировать 1: HTML-код <span class="exitspan" id="ExitSpanId"> <input name="ctl00$IDButtonExit" align="bottom" id="IDButtonExit" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px;" type="image" src="WebResources/Exit.gif"/> <a id="IDLinkExit" href="javascript:__doPostBack('ctl00$IDLinkExit','')" EVENT="eventExit"> <span class="exitspan" id="ExitSpanId"> <input name="ctl00$IDButtonExit" align="bottom" id="IDButtonExit" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px;" type="image" src="WebResources/Exit.gif"/> <a id="IDLinkExit" href="javascript:__doPostBack('ctl00$IDLinkExit','')" EVENT="eventExit">

Изменить 2: Причина

Я чувствую, что фактическая причина - из панели обновления. В поле "Вкл. Enter" в поле поиска не выполняется обратная передача, поэтому ссылка не получает привязку. Когда я добавил триггер AutopostBack в панель обновления, он начал работать, но СТРАНИЦА НАЧАЛА FLICKERING.

'<div id="SearchZone" runat="server">
    <span id="SearchTextSpan">
       <asp:Label ID="Label2" runat="server" meta:resourceKey="LabelSearch" />
             &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
       <asp:TextBox runat="server" Width="200px" ID="TextBoxSearch" MaxLength="70" />
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
       <asp:Button runat="server" ID="ButtonSearch" meta:resourceKey="ButtonSearch" cssClass="button" Width="150px" OnClick="ButtonSearch_Click"  />
       <asp:HiddenField ID="PreviousSearchIndex" runat="server" />
   </div>                    
   </asp:Panel>
   </ContentTemplate>
   <Triggers>
       <asp:PostBackTrigger ControlID="ButtonSearch" />
   </Triggers>
</asp:UpdatePanel>   '
Теги:
asplinkbutton

1 ответ

1

Посмотрев код HTML, я вижу причину, по которой событие LinkButton не запускается.

Идентификатором элемента является IDLinkExit, а значение, переданное в __doPostback, - 'ctl00 $ IDLinkExit'

Сравните код HTML до и после нажатия клавиши ввода и посмотрите, изменится ли идентификатор. Вы также можете отладить свой код и посмотреть, какое значение ClientID для LinkButton.

  • 0
    Тот же HTML после нажатия ENTER и после нажатия кнопки поиска

Ещё вопросы

Сообщество Overcoder
Наверх
Меню