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