2011-12-22 2 views
0

ユーザーがクリックすると、データグリッドセルのCSSを更新しようとしています。私はそれをクリックしてセルのJavaScript関数を入力することができますが、私はCSSを更新することができません。私は.NETにはまったく新しいので、これはすべて間違っているかもしれません。もっと良い方法があれば教えてください。ここでは、私がしようとしているものです:。jqueryのasp.netデータグリッドのCSSを更新します。

function UpdateRole(roleOrEmail, roleID, rowNum, employeeID) { 
alert("updating role..." + rowNum + " " + roleID + " " + employeeID + " " + roleOrEmail); 
var loadImage = 'url(http://localhost:4353/BrokerBuy/Images/flatbarberpole.gif)'; 
$("#MainContent_userRoles_GridView1 tr").each(function() { 
    //Skip first(header) row 
    if (this.rowIndex == rowNum) { 
     $(this).find("tr:last").css('background-image', loadImage); 
    } 
});} 

は私が見つけることを試みた( "TR")EQ(たrowNum).find( "TD")EQ(1)と同様。ここで

は、マークアップです:

<td style="width:50%;" onclick="UpdateRole('role','Buyer','0','1091912');" class="statusOff">Inactive</td> 

いくつかの行は、そのクラスを持っている、と私は唯一のクリックされた行を更新したいので、私は、しかし、クラスを経由して、それを参照することはできません。 updateRole関数の0は行のインデックスです。これは "rowNum"として私の関数に渡されました。正しい行/データ項目にアクセスする手段としてそのインデックスを使用できることを期待していました。

+1

cssクラスが正しい項目に適用されていないという問題はありますか?マークアップを表示できますか? ChromeまたはFirebugでマークアップを調べると、正しい項目を取得するのに役立ちます。 –

+0

いいえ、問題は、私がjqueryの右のセルをつかむように見えないことです。私がちょうど "これ"のためのCSSを更新するように設定すれば、うまく動作し、CSSはローディングバーに変更されます...それはちょうど正しい場所にはありません。 – shawleigh17

+1

マークアップを表示してもらえますか?それ以外の場合は、正しいセルを選択する方法が決してわかりません。 –

答えて

2

jquery findで「tr:last」を選択しようとしています。私は、あなたが既に$(this)という行を持っているので、代わりにtdを見つけようとしていると思います。私はあなたのコードをプロジェクトに貼り付け、$(this).find( "td:last")に変更して、セルの背景色を変更してくれました。

関連する問題