2017-06-01 239 views
2

複数のBoundFieldを列として持つASP.NET GridView(「ActionsGrid」と呼ばれる)があります。私のJavaScriptでは、選択した各行(クラス名は「強調表示」)を調べ、特定の列(1,3,4)からセル値を抽出したいと考えています。JavaScriptのGridViewから値を取得する方法

var params = []; 

$('#ActionsGrid tr').each(function() { 
    if (this.className === 'highlighted') { 
     var record_pk = this.children("td:nth-child(1)"); 
     var obj_name = this.children("td:nth-child(3)"); 
     var obj_pk = this.children("td:nth-child(4)"); 
     params.push(record_pk + "," + obj_name + "," + obj_pk + "¬"); 
    } 
}); 

私の変数は単に '未定義' を返し:

は、ここに私のスクリプトです。私は閉じますか?

答えて

1

ActionGridにClientIDを設定する必要があります。これは、クライアントに提示され、JavaScriptで使用できるIDです。

あなたはこのセットに「ActionsGrid」を持っているなら、あなたはしかし、あなたのjQueryのセレクタを使用すると、(CSSのような)IDに選択されたことを示すには、「#」を使用する必要があり、近くにある:

$('#ActionsGrid tr').each(function() { 

もすべての行を選択する代わりに、行のクラスをチェックすると、クラスをセレクタの一部にすることができます。私。そのクラスを持つ行のみを選択します。少し実験をした後

$('#ActionsGrid tr.highlighted').each(function() { 
+0

謝罪、不足している「#」はタイプミスでした。私はその問題を修正した。 ClientIDはグリッドのIDと異なりますか? IDは "ActionsGrid"です。 – lmhrpr

+0

次に、キーがおそらくあなたのグリッド上にClientIdを設定しています。 –

+0

私のDOMエクスプローラでは、HTMLテーブルIDも "ActionsGrid"です。これはClientIDの意味ですか? – lmhrpr

0

を、私は私の変数がそうのように設定する必要が見つかりました:

var record_pk = $(this).children("td:nth-child(1)").html(); 
var obj_name = $(this).children("td:nth-child(3)").html(); 
var obj_pk = $(this).children("td:nth-child(4)").html(); 
関連する問題