2012-03-27 17 views
0

私はレポートを書く上でウェブサイトを開発しています...ユーザーはレポートにコメントすることができます(新しいものと同じように!!))..質問に戻る..何をしているのですか?コメントはlistviewです。条件に応じてリストビューの行の色を変更する

質問:私が欲しい...私はScott Guthrie's blog..any助けでこれを見てきた後の所有者がコメントしたことがそのはっきりと見えるように、誰かが、彼自身のポストthe row should be of different colorにコメントすることはappreciated.Thanksであること。

+0

気圧確認することができないのですができないと思います。.. – Blindy

+0

任意のアイデアどのようにそれについて行く? – user1150440

+0

著者のIDを設定します(私が正しいとすれば、現在ログインしているユーザーになります)をセッション変数に設定します。次にlistviewのItemDataBoundイベントで、idが一致すれば色を変更します... javascriptまたはjQueryを一致するIDを持つ行に色を付ける...コードなし、あまり情報=この多くの回答.. :) –

答えて

2

データキーとItemDataBoundイベントでこれを行うことができます。上記に加えて

<asp:ListView ID="ListView1" runat="server" DataKeyNames="UserID" OnItemDataBound="ListView1_ItemDataBound" ... /> 

、あなたは背景色を調整することができるように、サーバーコントロールの各項目をラップすることも必要があります:

<ItemTemplate> 
    <asp:Panel ID="Panel1" runat="server"> 
     <!-- the item content here --> 
    </asp:Panel> 
</ItemTemplate> 

はここにいくつかのサンプルコードビハインドです:

protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e) 
{ 
    var dataItem = e.Item as ListViewDataItem; 
    if (dataItem != null) 
    {       
     var innerPanel = dataItem.FindControl("Panel1") as Panel; 
     if (innerPanel!= null) 
     { 
      var userID = (int)ListView1.DataKeys[dataItem.DisplayIndex]["UserID"]; 
      if (userID == base.User.UserID) 
       innerPanel.BackColor = Color.PeachPuff; 
     } 
    }   
} 
+0

ありがとう...私はそれを今すぐ試してみましょう。 – user1150440

+0

あなたのコードは動作します...それは色を変えますが、それは全体のリストビューの色を変えます...私はすべての行を意味します。 – user1150440

+0

@ user1150440: 'ItemTemplate'のラッパーについてさらに明確にするために私の答えを更新しました。詳細については、2番目のコードブロックを参照してください。 –

0

は、コメンテーターのIDがあれば作家のID

と一致するかどうかを確認するためにチェックを行うonitemdatabound

if(databinder.eval(e.item.dataitem, "commentatorid") == _writerId) 
{ 
    e.item.attributes.add("style", "background-color: red"); 
} 

ような何かをするのか、私はそれが今、あなたはそれを行うことができ、それを見てきた場合、それはそのようなことが

+0

ありがとう...私はそれを今すぐ試してみましょう。 – user1150440

関連する問題