0

AssigneeViewエントリが開かれた日付を保持するという属性を含むオブジェクトのリストがロードされたリストビューがあります。にはlistview's ItemTemplate「lblHeader」という名前のラベルがあります。私がやりたいのは、ListView.Itemsをループして、各要素のAssigneeView属性を確認することです。そうである場合はnull、を太字に設定しlblHeader.Textます(未読であることを示します)。

Object呼び出されたアイテムリストのから属性を取得し、そのフィールドのフィールドがnullであるticketIDかどうかを検索して、を返すメソッドを作成したいと思います。だからそれは次のようになりますAssigneeViewbool

ForEach item in listview.Items
   if(IsUnread(item.datamember.ticketID)) then
       item.lblHeader.MakeBold
   else
      item.lblHeader.MakeNotBold

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

更新:これが私が今いるところです:

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))
                        {
                            //???
                        }
                    }
                }
            }
4

2 に答える 2

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
    } 
}
于 2012-04-06T23:23:47.733 に答える
0

わかりました。もう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");
        }
    }
于 2012-04-07T17:16:44.227 に答える