如何从代码后面访问templatefield

时间:2011-01-25 16:12:13

标签: asp.net gridview

我想要更新动态的原因是因为我正在使用objectdatasource而且我的objectdatasource有一个对象的集合,并且在该对象中我有另一个我想要访问的对象,例如:

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

更新结束

如何从代码隐藏中绑定templatefield?

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

</columns>
</asp:Gridview>

2 个答案:

答案 0 :(得分:3)

首先在GridView控件中定义关键字段,只需将net属性添加到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

答案 1 :(得分:-1)

以下是MSDN的一些代码示例:

http://msdn.microsoft.com/en-us/library/aa479353.aspx

这些是在VB中,但您也应该能够找到C#: - )

如果您点击此链接并向下滚动,您会找到一个代码示例:

http://bytes.com/topic/asp-net/answers/624380-gridview-generated-programmatically