2012-01-05 55 views
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> 
+2

你可以包括列表视图的HTML标记,这样我们就可以理解它是如何的设置?另外,你能指出上面的代码被调用的地方吗?这可能会影响答案。 – 2012-01-05 01:28:30

+1

你有'ListView'中的模板吗?如果是这样,请尝试'myOrgName = CType(orderReceiptTable.Controls(0).FindControl(“orgName”),Literal)''。我已经把'0'作为索引,假设只有一个模板级别。 – keyboardP 2012-01-05 01:31:33

+0

如果有帮助,我将标记添加到我的问题中。我正在与您的建议keyboardP,看看是否适用于一些编辑。我会让你知道的。 – BehemothDan 2012-01-05 16:26:10

回答