我有一个通过数据源填充的 ASP.NET 中继器。数据加载并完美呈现在屏幕上,但是在加载阶段通过代码访问该转发器中的任何数据行的所有尝试均不成功。一旦转发器在屏幕上呈现,我就可以在表单提交上完美地访问所有内容,但是在我尝试过的每个与负载相关的事件(Load、Init、PreRender、DataBind 等)中,它都显示为空。是否有必要以编程方式在代码后面而不是 ASPX 标记中填充转发器,以便在加载阶段访问这些数据,或者我只是做错了什么?
ASPX 片段:
<div runat="server" id="rpt3" style="display: block;">
<p class="approvalHeaderText">
Rejected Items</p>
<asp:Repeater ID="RptRejected" runat="server" DataSourceID="SQL_EmployeeGetRejectedEdits">
<ItemTemplate>
<tr class="gridToggleWhite gridVisible" id="<%# Eval("RecID") %>_cont">
<td>
<%# Eval("OrderID")%>
</td>
代码片段背后的代码 - 在几个事件中尝试过(假设所有变量都已声明):
For i = 0 To RptRejected.Items.Count - 1
'Obtain current week's Expenses
curExpVal = RptRejected.Items(i).FindControl("ExpensePay")
If Not IsNothing(curExpVal) Then
If curExpVal.Text = "" Then
insertExp = 0
Else
insertExp = CSng(curExpVal.Text)
End If
Else
insertExp = 0
End If
Next