2013-07-31 2 views
0

Я думал, что это будет eaiser, но я не могу найти простое решение для него. У меня есть ListView:показать количество записей, найденных в asp listview

<asp:ListView ID="LVSearchResults" runat="server" DataSourceID="DSSearchResults"> 
    <ItemTemplate> 
     <tr style=""> 
      <td> 
       <asp:Label ID="PostDateLabel" runat="server" Text='<%# Eval("post_date") %>' /> 
      </td> 
     </tr> 
    </ItemTemplate> 
    <LayoutTemplate> 
     <table id="Table2" runat="server"> 
      <tr id="Tr1" runat="server"> 
       <td id="Td1" runat="server"> 
        <table id="itemPlaceholderContainer" runat="server" border="0" style=""> 
         <tr> 
          <th runat="server">Found Rows</th> 
         </tr> 
         <tr id="Tr2" runat="server" style=""> 
          <th id="Th1" runat="server">Post Date</th> 
         </tr> 
         <tr id="itemPlaceholder" runat="server"> 
         </tr> 
        </table> 
       </td> 
      </tr> 
      <tr id="Tr3" runat="server"> 
       <td id="Td2" runat="server" style=""> 
        <asp:DataPager ID="DataPager1" runat="server" PageSize="15"> 
         <Fields> 
          <asp:NumericPagerField ButtonType="Link" ButtonCount="10" /> 
         </Fields> 
        </asp:DataPager> 
       </td> 
      </tr> 
     </table> 
    </LayoutTemplate> 
</asp:ListView> 

Мои Datasource:

<asp:Sqldatasource ID="DSSearchResults" runat="server" ConnectionString="<%$ ConnectionStrings:CDRConnectionString %>" 
    SelectCommand="usp_Search" 
    SelectCommandType="StoredProcedure" 
    > 
</asp:Sqldatasource> 

То, что я хотел бы сделать, это отобразить счетчик найденных записей. Таким образом, представление списка будет выглядеть как:

Found 123 records 
Post Date 
6/1/13 
6/2/13 
etc. 

Я пытался играть с контейнером, но это, кажется, не предлагает ничего, гугл, также не смогли найти много. Любой совет?

ответ

0

Просто разместите литерал (лучше, чем ваш ярлык) над списком (вне разметки) и установите его значение tekst, когда DataBinding.

0

Вы можете попробовать следующее:

HtmlTableCell th = (HtmlTableCell)LVSearchResults.FindControl("Th1"); 
th.InnerText = "Found " + LVSearchResults.Items.Count.ToString() + " items."; 

Но потому, что вы используете контроль DataPager, он всегда будет возвращаться 15. Так что, может быть, вы хотите, чтобы обновить ячейку, используя данные из источника данных вместо. Может быть, если вы покажете DataSource, я могу рассказать вам, как его получить.

+0

Спасибо, у меня также была эта проблема с использованием Datapager. Я поставил свой источник данных, это довольно просто, просто хранимая процедура sql. – russds

0

это так легко Используйте код, приведенный ниже в вашем коде, чтобы подсчитать все записи

CTYPE (listview1.FindControl ("DataPager1"), DataPager) .TotalRowCount

Вместо ListView1, просто написать ID ur listview. , ,

Удачи

Смежные вопросы