Hi Guoqi,
In the Page object's PreRender event you already know how many items there
are in the repeater. Therefore, you can get a reference to the last item and
do whatever needs to be done with it. Here's a snippet, full source below:
Private Sub Page_PreRender _
(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles MyBase.PreRender
Dim itm As RepeaterItem
itm = Repeater1.Items(Repeater1.Items.Count - 1)
Dim lblNotice As New Label
lblNotice.Text = "Last>>>"
itm.Controls.AddAt(0, lblNotice)
End Sub
Does this help?
Ken
Microsoft MVP [ASP.NET]
Toronto
Private Sub Page_Load _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
Dim lblCntrl As Label
Repeater1.DataSource = CreateDataSource()
Repeater1.DataMember = "StringValue"
Repeater1.DataBind()
End Sub
Private Sub Page_PreRender _
(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles MyBase.PreRender
Dim itm As RepeaterItem
itm = Repeater1.Items(Repeater1.Items.Count - 1)
Dim lblNotice As New Label
lblNotice.Text = "Last>>>"
itm.Controls.AddAt(0, lblNotice)
End Sub
Function CreateDataSource() As DataTable
Dim dt As New DataTable
Dim dr As DataRow
dt.Columns.Add(New DataColumn _
("IntegerValue", GetType(Int32)))
dt.Columns.Add(New DataColumn _
("StringValue", GetType(String)))
dt.Columns.Add(New DataColumn _
("CurrencyValue", GetType(Double)))
dt.Columns.Add(New DataColumn _
("Boolean", GetType(Boolean)))
Dim i As Integer
For i = 0 To 8
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 'CreateDataSource
<asp:Repeater id="Repeater1" runat="server">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<asp:Label id="Label3" runat="server">
<%# DataBinder.Eval(Container, "DataItem.StringValue") %>
</asp:Label>
<br>
</ItemTemplate>
</asp:Repeater>
Guoqi Zheng said:
Sir,
According to our design, very often, I need to have a different html code
for the last row of our repeater control. I can not put those code
difference into footer because those code has to be in the last data row.
How can I edit the last data row of a repeater control??
--
Kind regards
Guoqi Zheng
guoqi AT meetholland dot com
Http://www.meetholland.com