У меня есть ListView с именем "orderReceiptTable", к которому я могу правильно получить доступ из кода позади. Внутри него есть буквальное имя 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>