我有一个代码来创建一个GridView。除SenderDetails
列外,它显示正常。我需要为此创建一个项目模板。 Message
和Date
DataFields来自一个名为Chat
的类,它们在网格中显示得很好。但SenderDetails
从聊天类另一个类叫做:如何为动态gridview创建项目模板/ templatefield
public class Chat : BaseResultSet
{
public string Message { get; set; }
public DateTime? SentDate { get; set; }
public ChatUserDetails SenderDetails { get; set; }
}
的ChatUserDetails
类是:
public class ChatUserDetails : BaseDisplaySet
{
public string UserName { get; set; }
public string CompanyName { get; set; }
public bool Connected { get; set; }
}
因此,而不是显示它在SenderDetails
列显示baseClasses.Chat.ChatUserDetails
的用户名。
我需要在BuildChatsGrid()
中显示用户名。 GridView控件代码:
public static GridView BuildChatsGrid()
{
GridView NewDg = new GridView();
NewDg.Columns.Add(new BoundField { DataField = "Message", HeaderText = "Note" });
NewDg.Columns.Add(new BoundField { DataField = "SenderDetails", HeaderText = "Entered By" }); //need item template
NewDg.Columns.Add(new BoundField { DataField = "SentDate", HeaderText = "Date", DataFormatString = "{0:dd/MM/yyyy}" });
}
那么,如何添加项目模板或模板列调用SenderDetails
?
你为什么不在你的web表单代码中构建这个?动态构建它是否势在必行? – TestWell
@TestWell是的,它必须动态构建 – user123456789
[这是我找到的链接](http://www.codeproject.com/Articles/13462/How-to-create-template-columns-dynamically-in-a-gr)看起来解决同一个问题。您将不得不调整模板以满足您的需求,但这是一个开始。看起来像任何模板必须来自'ITemplate' – TestWell