2011-11-22 6 views
0

データベース内で最大約10個の項目をループする小さなリピーターがあり、各リピート内でデータベース呼び出しを行い、<p>タグを入力するのに必要な数値(数値)を取得します。 HTML。Repeater VB.netによって作成された値の集計

リピータが完了したら、すべての<p>タグ値の合計を取得する必要があります。

マイリピータコードはリピータは、上述したように、リストからの約10倍をループし

<asp:Repeater runat="server" ID="locationRepeater" OnItemDataBound="getQuestionCount"> 
     <ItemTemplate> 
      <p class='mainNotifications clickTip' id='locationQuestions' runat='server'>/p>   
     </ItemTemplate> 
</asp:Repeater> 

です。

CType(e.Item.FindControl("locationQuestions"), HtmlGenericControl).InnerHtml = outputFromMySQL 

は、だから私はで終わるものとの10個の<p>タグ、それぞれ次のとおりです。OnItemDataBoundによって呼び出される関数は、この出力は、このコードで、<p>タグに入力され、単一の数値の出力を持つ単純なMySQLのクエリです数値。

jQueryを使用すると、合計を.each('.className').val()で合計することで値を数えることができましたが、コードの背後でこれを行うことができます。

私は、基本的に、リピータのループ内で合計を行い、それを合計に出力する必要があると思いますが、その方法はわかりません。

+0

は、あなたは正しい、あなたの 'Repeater'に' List'を結合しなければなりませんか? –

答えて

0

リピータアイテムごとにクエリを実行するのはなぜですか? 1つのクエリでデータを先に取得すると、パフォーマンスが大幅に向上します。次に、合計値を簡単に計算することもできます。

しかし、これが本当に必要な場合は、常に 'TotalCount'インスタンス変数をコードビハインドクラスに追加し、各OnItemDataBoundにこの値をクエリの結果で増やすことができます。あなたがリピーターをデータバインディング完了したら、あなたはインスタンスで合計値を持つことになります

変数

+0

ええ、パフォーマンスは良くなると思いますが、リストの内容を必ずしも知る必要はないので、この方法は簡単です。まずデータベースからリストを取得してから、ループされたクエリのWHERE句のパラメータとしてリストを返します。私はTotalCount変数を追加しようとしましたが、適切な場所に置くことができません! –

+0

どこに入れましたか? –

+0

ああ... Doh ...それは今得ました。私は –

関連する問題