2013-10-04 2 views
0

SQL 데이터 원본의 값을 ListView에 표시 할 수 없습니다.SQL 데이터 원본의 값을 ListView EmptyDataTemplate에 표시 할 수 없습니다.

아래의 코드를 사용하면 'equipment_attrib_value_id'에있는 값이 잘 표시되므로 (ahref 링크가 작동하므로) 'equipment_attrib_value_id'에있는 값이 표시되지 않습니다. 즉, 링크가 AddAttribValue를 가리키고 있음을 의미합니다. 영문? EquipmentID = & HeadingID =

(그래서 값 HeadingID 끝에 없음) 20

<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에 바인딩 된 데이터가없는 경우에만 표시되므로 (예 : 빈 컬렉션을 바인딩 한 경우) 단순히 레코드가 없으므로 평가가 null을 반환하도록 바인딩됩니다.

+0

논리적으로는 의미가 있지만 목록에 표시되는 행의 값 ('equipment_attrib_value_id'값)을 알아야합니다. 내 맞춤 '추가'링크를 만들기 위해이 값을 검색하는 더 좋은 방법이 있습니까? – Rich

+0

EmptyDataTemplate은 행이 전혀 없을 때만 표시된다는 문제가 있습니다. MSDN에서 "ListView 컨트롤이 레코드가없는 데이터 소스에 바인딩 될 때 렌더링되는 빈 템플릿의 사용자 정의 콘텐츠를 가져 오거나 설정합니다." 행을 추가하고 equipment_attrib_value_id가 테이블의 기본 키인 것으로 추측하면 행을 추가하려는 경우 값을 필요로하지 않는다고 생각됩니다. –

+0

설명 Ben을 주셔서 감사합니다. 또한 필자는 방금 전에 작성한 코드의 오타를 강조했습니다. 'equipment_attrib_value_id'의 값은 실제로 기본 키이지만 (now-edited 코드에 따라) 'Equipment_attrib_heading_id'값이 포함 된 'AddAttribValue.aspx'링크를 만들어야합니다. 따라서 Add 페이지에서 할당 할 HeadingID를 알 수 있습니다. equipment_attrib_heading_id의 값은 더 이상 같은 SELECT 문에 포함되지만 equipment_attrib_value_id는 존재하지 않으므로 equipment_attrib_heading_id! 나는 거짓말이 필요하다고 생각해. – Rich

관련 문제