2017-03-23 1 views
0

J'ai la recherche implémentée dans mon application, et elle va à une page de résultats où les résultats peuplent une table à travers un répéteur asp:. Je vais inclure le code ci-dessous.Comment renvoyer asp: nombre de répéteurs

C#

namespace WebApplication { 
    public partial class SearchResults : System.Web.UI.Page { 
     protected void Page_Load(object sender, EventArgs e) { 
      if (Request.Params["searchterm"] != null) { 
       ResultLabel.Text = "Search results for: " + Request.Params["searchterm"]; 
       string searchTerm = Request.Params["searchterm"]; 
       int results = 0; //If I were to set it on back end 
       string constr = ConfigurationManager.ConnectionStrings["CurrencyDb"].ConnectionString; 
       using (SqlConnection con = new SqlConnection(constr)) { 
        using (SqlCommand cmd = new SqlCommand("dbo.SearchProc", con)) { 
         try { 
          cmd.CommandType = CommandType.StoredProcedure; 
          cmd.Parameters.AddWithValue("@SearchTerm", searchTerm); 
          con.Open(); 
          SqlDataAdapter sda = new SqlDataAdapter(cmd); 
          DataSet ds = new DataSet(); 
          sda.Fill(ds); 
          ResultsTableRepeater.DataSource = ds; 
          ResultsTableRepeater.DataBind(); 
         } 
         catch (SqlException sqlex) { 
          throw new Exception("SQL Exception loading data from database. " + sqlex.Message); 
         } 

         catch (Exception ex) { 
          throw new Exception("Error loading results data from database. " + ex.Message); 
         } 
        } 
       } 
      } 
     } 
    } 
} 

asp.net

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> 
    <br /> 
<br /> 
<br /> 
<br /> 
    <asp:Label ID="ResultLabel" runat="server"></asp:Label> 
    <br /> 
    <br /> 
    <br /> 
    <br /> 
    <asp:Repeater ID="ResultsTableRepeater" runat="server"> 
     <HeaderTemplate> 
      <table class="td-table-bordered"> 
       <th>Currency Id</th> 
       <th>Component</th> 
       <th>Version</th> 
       <th>Vendor</th> 
       <th>Tech Owner</th> 
       <th>Tech Contact</th> 
       <th>Fiscal Consideration</th> 
       <th>Currency Status</th> 
     </HeaderTemplate> 
     <ItemTemplate> 
      <tr> 
       <td><%# Eval("CurrencyId") %></td> 
       <td><asp:HyperLink ID="UpdateLink" NavigateUrl='<%# Eval("CurrencyId", "http://10.155.54.101/Update?CurrencyId={0}") %>' runat="server" Target="_blank"><%# Eval("Model") %></asp:HyperLink></td> 
       <td><%# Eval("Version") %></td> 
       <td><%# Eval("Vendor") %></td> 
       <td><%# Eval("Tech Owner") %></td> 
       <td><%# Eval("Tech Contact") %></td> 
       <td><%# Eval("FiscalConsideration") %></td> 
       <td><%# Eval("Status") %></td> 
      </tr> 
     </ItemTemplate> 
     <FooterTemplate> 
      </table> 

      <asp:Label ID="StatusLabel" runat="server" Text="Label"></asp:Label> 
     </FooterTemplate> 
    </asp:Repeater> 
    <br /> 
</asp:Content> 

Ce que je voudrais faire est d'imprimer un certain nombre nombre de résultats ont été retournés dans le pied de page. Mais je n'arrive pas à trouver un moyen de le faire durant toutes mes recherches, même si cela semble être une tâche simple.

Y a-t-il un moyen, que ce soit dans le code C# derrière ou dans l'aspx directement pour imprimer comment la quantité de résultats à la fin? Il serait facile s'il y avait une boucle while (reader.read) pour incrémenter un compteur, mais ce n'est pas le cas.

Merci d'avance pour votre aide!

Répondre

0

Vous pouvez utiliser la valeur de retour de sda.Fill(ds);:

Comme le documentation for Fill says:

Valeur de retour: Le nombre de lignes ajouté avec succès ou rafraîchi dans le DataSet.

Ainsi:

int rowsReturned = sda.Fill(ds); 

Ensuite, vous pouvez affecter la valeur dans le pied de page.

0

Voici une question similaire ici: Determine the repeater row count in asp.net

l'espoir que cela vous aide! Vous devriez simplement pouvoir utiliser leur solution n'importe où dans votre codebehind pour obtenir le compte, puis l'afficher là où vous en avez besoin dans votre pied de page (en supposant que votre répéteur est déjà rempli lorsque vous essayez d'obtenir le compte).