我有一个名为“orderReceiptTable”的ListView,我可以从Code Behind正确访问它。其中有一个名为“orgName”的文字,我显然希望用一个组织的名字来填充。
经过大量搜索后,确定FindControl是正确的行动方案。也许我正在使用FindControl不正确但我无法让它“找到”我的Literal控件。
在页面加载中调用代码块。
我的代码看起来像这样:
Dim orgNameString As String = getOrganizationName.getOrgName(organizationID).ToString()
Dim myOrgName As Literal = FindControl("orgName")
myOrgName = CType(orderReceiptTable.FindControl("orgName"), Literal)
If Not (myOrgName Is Nothing) Then
Response.Write("I found the control!")
myOrgName.Text = orgNameString
End If
以下是.aspx文件中的标记:
<asp:ListView ID="orderReceiptTable" runat="server">
<LayoutTemplate>
<div runat="server" id="itemPlaceholder" />
</LayoutTemplate>
<EmptyDataTemplate>
<tr id="noDataDiv" runat="server">
<td class="sub" ID="itemPlaceholder" runat="server">
No order data was returned.
</td>
</tr>
</EmptyDataTemplate>
<ItemTemplate>
<div id="itemPlaceholder" runat="server" style="border:solid 1px #000000; width:250px; float:left; padding:10px; border:solid 2px #1664B1;">
<div>Organization Name: <asp:Literal runat="server" ID="orgName"></asp:Literal></div>
</div>
</ItemTemplate>
</asp:ListView>
答案 0 :(得分:1)
模板内的控件只有在将一些数据绑定到模板后才会创建。然后,您就可以通过ListView.Controls
属性访问它。
之前的回答可能有所帮助:Find control in ListView EmptyDataTemplate