2012-04-06 7 views
0

私は、エントリが開かれた日付を保持するAssigneeViewという属性を含むオブジェクトのリストがロードされたリストビューを持っています。 listview'sItemTemplateには「lblHeader」というラベルが付けられています。私がしたいのは、ListView .Itemsをループし、各要素のAssigneeView属性をチェックします。nullの場合は、lblHeader.Textを太字に設定します(未読であることを示します)。どのように私は各readlistviewitemをループし、値をチェックし、太字に設定するのですか?

私はticketIDと呼ばれるアイテムのリストの中Objectから属性を受け取るメソッドを作成し、AssigneeViewフィールドは、そのフィールドのヌルであるかどうかを検索し、boolを返すようにしたいです。だから、それは何かのように見えるでしょう

私はこれを行うために必要なものを得るためにtelerikコントロールを掘る方法について100%ではありません。助言がありますか?

UPDATE:私は現時点では午前どこ ここにあります:

using (var client = new QUTIService.QSVCClient()) 
      { 
       var data = client.SearchTickets(this.myGuid, txtSearchString.Text, 100, chkSearchClosed.Checked).ToList(); 
       lsvResultTickets.DataSource = data; 
       lsvResultTickets.DataBind(); 
       if (data.Count == 0) 
       { 
        lblStatus.Text = "No tickets found."; 
       } 
       else 
       { 
        foreach (var item in lsvResultTickets.Items) 
        { 
         var obj = item.DataItem as QT.FullTicket; 
         if (TicketIsUnread(obj.OriginalTicket.TicketID)) 
         { 
          //??? 
         } 
        } 
       } 
      } 
+0

これでイベントハンドラに入れました。 RadListViewItemEventArgs eが参照です。私はe.Item.FindControl( "lblHeader")でラベルにアクセスし、大胆に大胆に設定することができます。しかし、アイテムからオブジェクトをアンボックスすることに問題があります。通常のASPコントロールは、通常、かなりストレートです:(タイプ)e.Itemまたはそのようなもの。しかし、e.ItemはRadListViewItem型であり、内部にあるFullTicketオブジェクトにキャストしません。 – Sinaesthetic

答えて

0

[OK]をクリックすると、もう1つのレベルをドリルダウンするだけでした。私は私のために小切手をする別の方法を引き出す必要はなかった。私はこれをアイテムがロードされたイベントハンドラで処理しました。ここで私が最後に終わったのです:

protected void ResultItem_DataBound(object sender, RadListViewItemEventArgs e) 
    {   
     var dItem = e.Item as RadListViewDataItem; 
     var dObj = dItem.DataItem as QT.FullTicket; 
     //if no read date, mark as unread (bold) 
     if (dObj.AssigneeView == null) 
     {    
      var headerLabel = e.Item.FindControl("lblHeader") as Label; 
      headerLabel.Style.Add("Font-Weight", "Bold"); 
      headerLabel.Style.Add("Color", "Orange"); 
     } 
    } 
0

あなたが行う必要がありますどのようなRowDataBoundイベントでAssigneeViewをチェックし、それに応じてlblHeaderを設定しています。 RowDataBoundは、GridViewに追加されるデータソースの各行に対して呼び出されます。

if (e.Row.RowType == DataControlRowType.DataRow) { 
    if (DataBinder.Eval(e.Row.DataItem, "AssigneeView") == null) { 
     //Set bold 
    } else { 
     //Set normal 
    } 
} 
+0

これはリストビューであり、グリッドビューではありません。行属性を持っていないようです – Sinaesthetic