2011-02-07 83 views

回答

0

如果你不介意做我的代碼隱藏,這裏的如何。

把一個TemplateField在GridView,方含在ItemTemplate一個標籤,及導線上的GridView的RowDataBound事件的處理程序:

<asp:GridView runat="server" ID="PeopleGridView" AutoGenerateColumns="false" OnRowDataBound="PeopleGridView_OnDataBound" > 
    <Columns> 
     <asp:TemplateField> 
     <ItemTemplate> 
      <asp:Label runat="server" ID="NameLabel" /> 
     </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

在處理程序,得到的DataItem,並投射到您的人員類。找到Label控件,並從類設置文本的屬性:

protected void PeopleGridView_OnDataBound(object sender, GridViewRowEventArgs e) 
{ 
    // Make sure it's a DataRow - this will fail for HeaderRow, FooterRow etc 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     // Get the DataItem and cast it 
     Person currentPerson = (Person) e.Row.DataItem; 
     // Locate the Label and set it's text 
     ((Label) e.Row.FindControl("NameLabel")).Text = currentPerson.firstName + " " + currentPerson.lastName; 
    } 
} 
1

使用tempate場和eval方法:

<asp:GridView runat="server" ID="MyGrid" AutoGenerateColumns="false" 
    DataSourceId="...">  
    <Columns>   
    <asp:TemplateField>   
     <ItemTemplate>   
     <%# Eval("FirstName") %>&nbsp;<%# Eval("LastName") %> 
     </ItemTemplate>   
    </asp:TemplateField>  
    </Columns> 
</asp:GridView> 
相關問題