0
编辑:我的对象定义如下。我将它传递给GridView1。如何在GridView中将控件绑定到<ItemTemplate>?
public class UserTestorViewModel
{
public string Username {get;set;}
public string Password {get;set;}
public Label SuiteName {get;set;}
}
我已经GridView控件绑定到一个定制List<UserTestorViewModel>
:
this.GridView1.DataSource = utViewModelList;
this.GridView1.DataBind();
,并在.aspx我
<asp:TemplateField HeaderText="LoginName">
<ItemTemplate>
<asp:Label ID="LoginName" runat= "server" Text= '<%# ((ViewModels.UserTestorViewModel)Container.DataItem).User.userName %> '></asp:Label>
</ItemTemplate>
</asp:TemplateField>
这个工程,因为ViewModels.UserTestorViewModel.User.userName
是字符串,但
<asp:TemplateField HeaderText="SuiteName">
<ItemTemplate>
<%# ((ViewModels.UserTestorViewModel)Container.DataItem).SuiteName %>
</ItemTemplate>
</asp:TemplateField>
因为ViewModels.UserTestorViewModel.SuiteName
为System.Web.UI.WebControls
标签那么如何绑定一个System.Web.UI.WebControls
到<ItemTemplate>
不是在的System.Web.UI.WebControls
这几乎是我想要的。但是当'this.GridView1.DataSource = utViewModelList;'时,我已经将'Label'传递给了GridView1。当你提供'GridView1_RowCreated'时如何获取它。谢谢。 – hbrls 2011-05-26 07:36:18
我写了'var dataItem = e.Row.DataItem;'。在调试模式下,我看到dataItem是我传入GridView的内容以及我正在寻找的内容。但为什么我不能使用'dataItem.SuiteName'? – hbrls 2011-05-26 07:46:26
当然,您可以但e.Row.DataItem的类型是System.Object,您必须将其转换为您的类型(ViewModels.UserTestorViewModel) – 2011-05-26 08:01:58