2012-01-05 24 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

回答