2012-03-20 11 views
0

私は現在、いくつかのBoundFieldsを表示するasp:GridViewと、asp:DropDownListを保持するasp:TemplateFieldを表示しています。グリッドに複数の行を追加し、それぞれを個別に編集することができます。jQueryを使用してasp:GridViewで編集中の現在の行を検索

私が調べる必要があるのは、現在の行で編集中の現在のDropDownListの選択値を取得する方法です。

私は私のリンクボタンの上に呼び出す関数に次のコードを使用して試してみた:

var product = $('.selectedItem').val();

しかし、このコードは今まで最初の方の行の値を返します。したがって、3行目のドロップダウンを編集して5番目の値を選択していても、1行目の値が2の場合、2つしか返されません。

ドロップダウンのための私のhtml:

<asp:TemplateField HeaderText="Vendor"> 
    <ItemTemplate> 
     <asp:HiddenField ID="hidEntityID" runat="server" Value='<%# Eval("SomeID") %>' /> 
     <asp:DropDownList ID="ddlList" runat="server" DataSourceID="dsList" DataTextField="Value" DataValueField="ID" Font-Names="Verdana" Font-Size="11px" ForeColor="#2D2D2D" ClientIDMode="Static" CssClass="selectedItem" OnDataBound="ddlEntity_DataBound"> 
      <asp:ListItem Value="-1">--- Select ---</asp:ListItem> 
     </asp:DropDownList> 
     <asp:ObjectDataSource ID="dsList" runat="server" SelectMethod="GetList" TypeName="SomeClass" OldValuesParameterFormatString="original_{0}"></asp:ObjectDataSource> 
    </ItemTemplate> 
</asp:TemplateField> 

グリッドでの私のリンクボタン:

<ItemTemplate> 
     <a href="#" onclick='addEditDetail(<%# Eval("ID") %>)'>Detail</a> 
</ItemTemplate> 

は基本的に私は必要なもの、私は編集または選択していた行の現在のインデックスを見つけることです'編集'し、その特定のDropDownの値だけを取得します。

どのような提案もすばらしいでしょう。

ありがとう

答えて

2

はいこれは、セレクタがデフォルトのリンクボタンを要求しているときに常に最初のドロップダウンを返します。 $( '。selectedItem')はすべてのドロップダウンを返し、最初のものをデフォルトとして返します。

あなたのリンクボタンのクリックイベントは次のようになります。に

<ItemTemplate> 
     <a href="#" onclick='addEditDetail(this)'>Detail</a> 
</ItemTemplate> 

function addEditDetail(linkBtn) 
{ 
    var currentDropDown = $(linkBtn).closest("tr").find("select[id*='ddlList']"); 
    alert(currentDropDown.val()); 
} 
+0

メイク 'addEditDetail(本)' 'addEditDetail(この); falseを返します;'それが重要であれば "#"がURLにポップするのを止めてください。 – Graham

+0

ありがとうございました!これは完璧に機能し、私の問題のかなりの部分を実際に整理しました。心から感謝する。 – Melanie

0

なぜドロップダウンコントロールID値もレコードIDとして設定しないのですか?このようにして、addEditDetailに渡されたID値を使用して、特定のドロップダウンを取得できます。私は"Dropdown" + Eval("ID")にドロップダウンIDを設定し、それをJQueryの識別子として使用します:$("#Dropdown" + ID)

関連する問題