我想要更新动态的原因是因为我正在使用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>
答案 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