2012-02-10 22 views
0

私はMVCとjQueryを初めて使用しています。私はMvcContribグリッドを持っています。データを取り込む行を選択する選択リンクがあるので、そのクリックにはすでに機能があります。選択した行のハイライトを同じ関数に追加できますか?ここで私のコードの様子の抜粋です。ハイライトMvcContribグリッドでJQueryを使用して選択された行

@Html.Grid(Model).Columns(column => 
{ 
    column.Custom(@<a href='#@item.ID' onclick='getContactDetails(@item.ID); 
    return false;'>Select</a>); 
    column.For(x => Html.ActionLink("Edit", "Edit", "Contact", new { id = x.ID, 
    socialcommunityid = x.SocialCommunityID },new { @class = "openDialog", data_dialog_id 
    = "editContactDialog", data_dialog_title = "Contact Details" }) 
).Named("").Sortable(false); 
}) 


//This is the function that is already present 
function getContactDetails(communityContactID) 
{ 
    //Some code to fetch data 
} 

選択した行を強調表示するのに役立つ人はいますか?

答えて

0

必要なスタイルを含む新しいCSSクラスを作成できます。クリックハンドラ内のcurrnet行にこのクラスを追加します。別のパラメータthisgetContactDetailsに渡すと、対応する行を取得するのに役立ちます。これを試して。 CSSの

.selected{ 
    background: "someColor"; 
} 

のJs

function getContactDetails(communityContactID, obj) 
{ 
    //This will remove selected class from previous selection 
    $(this).closest('table').find('tr').removeClass('selected'); 

    //This will add the selected class to current row 
    $(this).closest('tr').addClass('selected'); 

    //Some code to fetch data 
} 
+0

は、私は次のパラメータを渡すことによって、あなたの方法を試してみました:column.Customを(Select @)。私の関数に行とパラメーターを追加しましたが、これは行を強調表示しません。また、ハイライトのコードの後ろにあるデータフェッチ操作を停止しました。何かアドバイス? –

+0

関数内でコードを変更しました。連絡先の詳細をobj.parents( 'table')に変更しました。find( '。selected')。removeClass( "selected"); obj.parents( 'tr')。addClass( "selected");グリッドロウを強調表示させます。しかし、他の行はハイライトされていません。助言がありますか? –

関連する問題