2011-01-04 34 views
8

Tôi đang ràng buộc một ListView vào một tập hợp các đối tượng đang hoạt động tốt. Thật không may khi bộ sưu tập trống thì tôi không nhận được văn bản trong phần tử EmptyItemTemplate được hiển thị như tôi mong đợi.Danh sách ASP.Net Xem EmptyItemTemplate không hiển thị

đang Markup là

 <asp:ListView ID="lvBuildingContactsGrid" runat="server" 
      onitemcommand="lvBuildingContactsGrid_ItemCommand" > 
      <LayoutTemplate> 
        <!-- some more html markup --> 
      <asp:PlaceHolder ID="itemPlaceholder" runat="server" /> 
        <!-- some more html markup --> 
      </LayoutTemplate> 
      <ItemTemplate> 
        <!-- some item makup -->   
      </ItemTemplate> 
      <EmptyItemTemplate> 
        <p> empty text that isn't displaying </p>     
      </EmptyItemTemplate> 
     </asp:ListView> 

Các mã sau để ràng buộc là

 ContactRoleCollection contactRoles = new ContactRoleCollection(); 
     contactRoles.ContactRoleSearchByBuildingID(int params); 

     lvListView.DataSource = contactRoles; 
     lvListView.DataBind(); 

Khi bộ sưu tập trả về một tội danh không thì văn bản EmptyItemTemplate không hiển thị. Tôi đã xem nguồn trang và nó không được hiển thị (thay vì bị ẩn). Tôi đã thay thế đối tượng DataSource chỉ bằng null tức là

lvListView.DataSource = null 

Chỉ để kiểm tra và nó vẫn không hoạt động. Không có văn bản nào được hiển thị lại.

Tôi đã gặp vấn đề này trên các trang khác mà tôi đã làm việc (và từ bỏ và thực hiện công việc kludge) vì vậy rõ ràng đó chỉ là thứ tôi thiếu - đang làm sai.

Bất kỳ đầu vào đánh giá cao

Trả lời

23

Dường như bạn đang bối rối EmptyItemTemplate, mà được hiển thị khi không có mục dữ liệu hơn để hiển thị trong nhóm cuối cùng của trang hiện tại, với EmptyDataTemplate, mà được hiển thị khi dữ liệu nguồn không chứa bất kỳ bản ghi nào.

Từ câu hỏi của bạn, có vẻ như bạn cần thứ hai. Bạn nên viết:

<EmptyDataTemplate> 
    <p>Empty text that will be displayed.</p> 
</EmptyDataTemplate> 
+3

Có thể điều này sẽ không hiển thị nếu bạn gán null làm nguồn dữ liệu. (Đừng quên .DataBind()) Chỉ cần sử dụng 4 dòng mã từ trên cao. – citronas

+0

Đó là chính xác nó. Cảm ơn nhiều –

Các vấn đề liên quan