2

私はasp.netでグリッドビューを持っていますフィールドの1つは、グリッドビュー内の隠しフィールドです:

 <asp:TemplateField>
                                 <ItemTemplate>
                                      <input type="hidden" value="0" id="hdnIsChanged" runat="server" />
                                 </ItemTemplate>
                            </asp:TemplateField>

グリッドビュー内にもradiobuttonlistがあり、jqueryクリックイベントが機能しています...これがそのイベントです:

$("#MainContent_gvLineItems input[id*='rbAnswer']").click(function () {
                    var parentRow = $(this).parents('tr').eq(1) //used to get the row at index 1, parents('tr').length prints 3.  
                    //tr around the checkbox is index 2
                    //tr around row is index 1
                    //tr around header is index 0
                    //so we want to get a reference to index=1
                    var firstCell = parentRow.find('td:eq(0)'); //find the first cell
                    var p = $(this).parents("div[id='dMainAnswer']").find(".Answer:first"); //used to find the panel
                    var val = $(this).val();

                    switch (val) //check the value 
                    {
                        case 'No':
                            firstCell.css('background-color', 'red');
                            p.show();
                            break;
                        case 'Yes':
                            firstCell.css('background-color', 'green');
                            p.hide();
                            break;
                        case 'N/A':
                            firstCell.css('background-color', 'gray');
                            p.hide();
                            break;
                        default:
                            firstCell.css('background-color', 'transparent');
                            p.show();
                            break;
                    }
                });

これで問題ありませんが、このクリック イベント内で隠しフィールドにアクセスしたいのですが、hdnIsChangedどうすれば参照できますか? 私は試した:

alert($('input[id$=hdnAnswered').val());

しかし、未定義と言い続けています...このクリックイベントでアクセスし、jqueryを使用して値を設定できるようにしたいです。すべての行に表示されるように、グリッドビュー内にあることを覚えておいてください...

どんな助けでも大歓迎です。

4

3 に答える 3

1

個人的に私はあなたの隠しフィールドにクラスを割り当て、次のようにそれにアクセスしようとします:

$(this).closest(".myClass");

これはサーバーコントロールであるため、その非表示フィールドのIDには、多くのasp.netジャンクが付加されている可能性が高いことに注意してください。したがって、次のようにレンダリングする代わりに:

<input type="hidden" value="0" id="hdnIsChanged" />

ほとんどの場合、次のようにレンダリングされます。

<input type="hidden" value="0" id="clt100_clt100_290420349823049823423_hdnIsChanged" />
于 2012-08-23T17:27:31.677 に答える
0

試すalert($("#hdnIsChanged").val())

于 2012-08-23T17:26:42.703 に答える
0

あなたはこれを試しました

alert($('input[id$=hdnAnswered').val());

しかし、今これを試してください...角括弧を閉じるのを忘れました

alert($('input[id$=hdnAnswered]').val());

そして、特定の行のhiddenfieldの値を取得するのに役立つコードは次のとおりです

  $("#MainContent_gvLineItems input[id*='rbAnswer']").click(function () {
                    var parentRow = $(this).parent('tr');
                    var hiddenField=parentRow.find('input[id$=hdnIsChanged]');
                    alert(hiddenField.val());
    });
于 2012-08-23T17:54:53.493 に答える