2013-10-04 92 views
0

我無法在ListView中顯示來自SQL數據源的值。無法在ListView EmptyDataTemplate中顯示來自SQL數據源的值

使用下面的代碼時,顯示的'equipment_attrib_value_id'中保存的值正確(所以ahref鏈接工作),但'equipment_attrib_value_id'中保存的值未顯示,表示鏈接僅指向AddAttribValue。 ASPX?EquipmentID = 20 & HeadingID =

(所以沒有值在HeadingID的端部)

<asp:TemplateField HeaderText="modify" SortExpression="modify"> 
    <ItemTemplate> 
    <asp:ListView ID="ListViewAttribModify" runat="server" 
     DataSourceID="SqlDataSourceAttribValues"> 
     <ItemTemplate> 
     <tr style=""> 
      <td style="font-size:x-small;"> 
      <a href="EditAttribValue.aspx?ID=<%# Eval("equipment_attrib_value_id") %>">Edit</a> 
      </td> 
     </tr> 
     </ItemTemplate> 
     <LayoutTemplate> 
     <table ID="itemPlaceholderContainer" runat="server" border="0" style=""> 
      <tr ID="itemPlaceholder" runat="server"> 
      </tr> 
     </table> 
     </LayoutTemplate> 
     <EmptyDataTemplate> 
     <table id="Table2" style=""> 
      <tr> 
      <td style="font-size:x-small;"> 
       <a href="AddAttribValue.aspx?EquipmentID=<%=Request.QueryString("id") %>&HeadingID=<%# Eval("equipment_attrib_heading_id") %>">Add</a> 
      </td> 
      </tr> 
     </table> 
     </EmptyDataTemplate> 
    </asp:ListView> 
</ItemTemplate> 
</asp:TemplateField> 

在 'equipment_attrib_value_id' 保持不存在的,因爲它是在正確地呈現它本身的價值。什麼阻止了我使用相同的價值,更重要的是,我如何解決它/解決它?

回答

0

EmptyDataTemplate只會在沒有數據綁定到ListView時顯示(例如,你綁定了一個空的集合),所以你的eval必須返回null,因爲沒有記錄。

+0

這是合乎邏輯的,但它必須知道它在列表中呈現的行的值('equipment_attrib_value_id'值)。有沒有更好的方式讓我檢索這個值來創建我自定義的「添加」鏈接? – Rich

+0

您遇到的問題是EmptyDataTemplate只會在根本沒有行時顯示。從MSDN獲取「爲ListView控件綁定到不包含任何記錄的數據源時呈現的空模板獲取或設置用戶定義的內容」。鑑於你想添加一行,並猜測你想添加行的表中的主鍵是equipment_attrib_value_id,那麼我懷疑你根本不需要這個值。 –

+0

感謝您的解釋本,您還在我的代碼中突出顯示了一個錯字,我剛剛在原文中對其進行了編輯。 'equipment_attrib_value_id'的值確實是主鍵,但是(按照現在編輯的代碼),我需要創建一個包含值'equipment_attrib_heading_id'的「AddAttribValue.aspx」鏈接,這樣我的Add頁面也知道要分配哪個HeadingID。 equipment_attrib_heading_id的值被進一步包含在同一個SELECT語句中,但由於equipment_attrib_value_id不存在,所以equipment_attrib_heading_id!我想我需要躺下。 – Rich

相關問題