1

ImageButton と LinkBut​​ton がスパンで結合され、同じ ClickEvent でバインドされて現在の場所から終了します。 ここに画像の説明を入力 同じページに searchTextBox と検索アクションを開始するためのボタンがあります。

問題は次のとおりです。

  • テキストボックスにテキストを入力し、Enter キーを押して検索アクションを実行し (データを検索した)、LinkBut​​ton をクリックして終了すると、LinkBut​​ton イベントは発生しませんが、imageButton イベントは発生します。
  • 上記と同じアクションを実行しましたが、Enter キーを押して検索する代わりに、検索ボタンをクリックしてから、LinkbUtton をクリックして終了しました。ImageButton と LinkBut​​ton の両方をクリックするとイベントが発生するようになりました。

ENTER キーを押してテキストを検索すると、ImageButton イベントのみが機能し、LinkBut​​ton イベントは機能しないのはなぜですか。

        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">

編集2:理由

本当の原因は更新パネルにあると思います。On Hit Enter 検索ボックスでポストバックを実行しないため、リンクがバインドされません。更新パネルに AutopostBack トリガーを追加すると、機能し始めましたが、ページがちらつき始めました。

`<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>   `
4

1 に答える 1