Programmatically set template column column header value

J

jdhavo

Has anyone ever set the header value for a template column in a
datagrid programmatically?
 
K

Ken Cox [Microsoft MVP]

All you have to do is catch the ItemCreated event for the header row and
then check the text of the column header. Here's an example.

Let us know if this helps?

Ken
Microsoft MVP [ASP.NET]


<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
If Not IsPostBack Then
datagrid1.DataSource = CreateDataSource()
datagrid1.DataBind()
End If
End Sub


Function CreateDataSource() As Data.DataTable
Dim dt As New Data.DataTable
Dim dr As Data.DataRow
dt.Columns.Add(New Data.DataColumn _
("IntegerValue", GetType(Int32)))
dt.Columns.Add(New Data.DataColumn _
("StringValue", GetType(String)))
dt.Columns.Add(New Data.DataColumn _
("CurrencyValue", GetType(Double)))
dt.Columns.Add(New Data.DataColumn _
("Boolean", GetType(Boolean)))
Dim i As Integer
For i = 0 To 5
dr = dt.NewRow()
dr(0) = i
dr(1) = "Item " + i.ToString()
dr(2) = 1.23 * (i + 1)
dr(3) = (i = 4)
dt.Rows.Add(dr)
Next i
Return dt
End Function

Protected Sub datagrid1_ItemCreated(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.DataGridItemEventArgs)
If e.Item.ItemType = ListItemType.Header Then
e.Item.Cells(0).Text = "Set programmatically"
End If
End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Set datagrid header programmatically</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:datagrid runat="server" id="datagrid1"
onitemcreated="datagrid1_ItemCreated" autogeneratecolumns="False">
<columns>
<asp:templatecolumn>
<itemtemplate>
<asp:label runat="server" text='<%#
DataBinder.Eval(Container, "DataItem.StringValue") %>'></asp:label>
</itemtemplate>
</asp:templatecolumn>
</columns>

</asp:datagrid><br />
</div>
</form>
</body>
</html>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top