2011-01-25 104 views
1

我期待更新動態的原因是因爲我使用的是objectdatasource,而我的objectdatasource有一個對象的集合,並且在該對象內有另一個對象,我想訪問這個對象:如何從代碼背後訪問templatefield

+Student 
    ...... 
    ...... 
    ...... 
    -Courses 
    ......... 
    ......... 
    Name 

更新結束

如何綁定的代碼隱藏模板列?

<asp:Gridview ID="gridview1" runat="Server"> 
<columns> 
<asp:TemplateField HeaderText="Name" SortExpression="Name"> 
        <ItemTemplate>      
        </ItemTemplate> 
       </asp:TemplateField> 

</columns> 
</asp:Gridview> 
+0

得到你有課程在學生類型的列表,或只是一個課程? – 2011-01-25 17:44:45

回答

3

首先在GridView控件中定義您的關鍵字段,只需將網絡屬性添加到GridView標記:datakeynames="StudentID"

您可以使用GridView的兩個事件處理函數:RowDataBound或RowCreated。只需添加一個此事件處理程序並找到放置在您的ItemTemplate中的控件即可。喜歡這裏,例如:

void ProductsGridView_RowCreated(Object sender, GridViewRowEventArgs e) 
    { 

    if(e.Row.RowType == DataControlRowType.DataRow) 
    { 
     // Retrieve the LinkButton control from the first column. 
     Label someLabel = (Label)e.Row.FindControl("someLabel"); 
     if (someLabel != null) 
     { 
      // Get Student index 
      int StudentId = (int)GridView.DataKeys[e.Row.RowIndex].Values[0]; 
      // Set the Label Text 
      // Define here all the courses regarding to current student id    
      someLabel.Text = // 
     } 
    } 

    } 

這個例子是從MSDN

相關問題