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