2
我有一個名爲「orderReceiptTable」的ListView,我可以從代碼隱藏中正確訪問它。其內部是一個名爲「orgName」的文字,我顯然希望用組織名稱來填充它。使用FindControl來定位文字
經過大量搜索後,確定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>
你可以包括列表視圖的HTML標記,這樣我們就可以理解它是如何的設置?另外,你能指出上面的代碼被調用的地方嗎?這可能會影響答案。 – 2012-01-05 01:28:30
你有'ListView'中的模板嗎?如果是這樣,請嘗試'myOrgName = CType(orderReceiptTable.Controls(0).FindControl(「orgName」),Literal)''。我已經把'0'作爲索引,假設只有一個模板級別。 – keyboardP 2012-01-05 01:31:33
如果有幫助,我將標記添加到我的問題中。我正在與您的建議keyboardP,看看是否適用於一些編輯。我會讓你知道的。 – BehemothDan 2012-01-05 16:26:10