0

マウスホバーでASP.NETグリッドビューラベルからjQueryダイアログを起動するにはどうすればよいですか? 私はこれを試しましたが、うまくいきません:

ASP マークアップ

 <asp:GridView ID="gvMain2" runat="server">
   <Columns>
     <asp:TemplateField>
       <ItemTemplate>
          <table class="tg-table-plain" style="width:100%">
             <tr>
                 <td><asp:Label ID="GRID_LBL" class="GRID_LBL" 
                      runat="server" Text='<%# Eval("Some_text") %>'></asp:Label>
                 </td>
             </tr>
          </table>
       </ItemTemplate>
     </asp:TemplateField>
   </Columns>
</asp:GridView>

JavaScript

$(function () {
    $("#dialog").dialog({
        autoOpen: false,
        show: {
            effect: "blind",
            duration: 1000
        },
        hide: {
            effect: "explode",
            duration: 1000
        }
    });

    $("#GRID_LBL").hover(function () {
        $("#dialog").dialog("open");
    });
});
4

3 に答える 3

0

以下のスクリプトを頭に追加していただければ幸いです

<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

ID を持つ Gridview ラベルが 1 つだけあることを願っています GRID_LBL

ここに動作するデモがあります

于 2013-08-28T11:42:23.377 に答える
0

そのラベルがグリッドビューの各行に存在する場合、それらすべてに同じ ID を与えることはできず、列テンプレートの ASP:label の CSSclass を「GridLabel」のようなものに設定する必要があり、jQuery コードでこのようなクラスごとのすべてのラベルへのホバー効果

$(".GridLabel").hover(function () {
    $("#dialog").dialog("open");
});
于 2013-08-28T11:12:42.640 に答える
0

問題は、GRID_LBLASP.NET が独自の ID を生成するため、生成されたコードのラベルの ID ではないことです。また、このラベルは GridView 内にあるため、Javascript でClientIDModeの設定または書き込みはClientIDここでは機能しません。ID の代わりにクラスを使用する必要があります。クラスは生成されたコードでも同じです。

<asp:Label ID="GRID_LBL" CssClass="GRID_LBL_CLASS"
                      runat="server" Text='<%# Eval("Some_text") %>'></asp:Label>

   $(".GRID_LBL_CLASS").hover(function () {
       $("#dialog").dialog("open");
   });
于 2013-08-28T12:53:04.017 に答える