0

jQuery を使用して gridview 内にある隠しフィールドの値を取得する必要があります。試してみましたが、うまくいきません。

//コード:

 <script type="text/javascript">
        $(document).ready(function () {
            $("table[id*='<%=grdTest.ClientID %>]' a[id*=getID]").click(function () {
                alert($(this).closest("tr").find("input[type=hidden][id*=key]").val());
            });
        });
    </script>

 <asp:GridView ID="grdTest" runat="server" AutoGenerateColumns="false">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:HiddenField ID="key" runat="server" Value='<%#Eval("ID") %>'> </asp:HiddenField>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Select">
                <ItemTemplate>
                    <a href="#" id="getID">Click</a>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

リンクをクリックすると、値を取得する必要があります。現在、応答はありません。どこが間違っていますか?

4

2 に答える 2

2

最近、まったく同じ問題に遭遇しましたが、これが私がそれを克服した方法です。非表示になっているため必要がないため、非表示フィールドにクラスを追加することはできないと信じるようになりました。代わりに<span class="hiddenfield"></span> 、グリッドビュー内の非表示フィールドをラップします。その後、スパンのクラスをターゲットにし、その後に jquery の入力を指定できます。したがって、コードは次のようになります。

<asp:TemplateField>
                    <ItemTemplate>
    <span class="hiddenfield">
                        <asp:HiddenField ID="key" runat="server" Value='<%#Eval("ID") %>'> </asp:HiddenField>
    </span>
                    </ItemTemplate>
                </asp:TemplateField>
    alert($(this).closest("tr").find(".hiddenfield input").val());

これは私の最初の答えなので、まだソートされていない場合は、これが役立つことを願っています。

于 2013-10-22T14:45:44.620 に答える
0

ID を使用して検索する代わりに、隠しフィールドにクラスを割り当て、それをセレクターとして使用できます。次のように、別の自動生成 ID が非表示フィールドに割り当てられるため、ID は機能しません。

<input type="hidden" value="0" id="clt100_clt100_29042034982304_key" />
于 2013-09-09T08:07:18.357 に答える