2011-12-23 4 views
0

私は3つの列とテキスト項目項目のテンプレートフィールドを持つ5つの行グリッドビューを持っているGridview.andを使用してランタイムにデータを挿入すると、このグリッドビューでいくつかの計算をしたい3列目のCol1とCol2の合計と、footer.AndのCol1の合計も、ポストバックやページリフレッシュのないテキストボックスでのテキストの変更として計算したいと思います。どうすればいいのか教えてください。 私はグリッドビューGridviewはランタイムに列を計算する

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" ShowFooter="True"> 
      <Columns> 
       <asp:TemplateField HeaderText="One"> 
        <FooterTemplate> 
         <asp:Label ID="lblOne_tot" runat="server"></asp:Label> 
        </FooterTemplate> 
        <ItemTemplate> 
         <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Two"> 
        <FooterTemplate> 
         <asp:Label ID="lblTwo_tot" runat="server"></asp:Label> 
        </FooterTemplate> 
        <ItemTemplate> 
         <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Total"> 
        <ItemTemplate> 
         <asp:Label ID="lblTotal" runat="server"></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 

答えて

0

は、JavaScript関数を呼び出して、あなたのテキストボックスのそれぞれの「のonChange」イベントを追加作成するコードを以下しています。この関数の中で、あなたの計算を行い、適切なlabel/div/span/etcを更新してください。

<script language="javascript"> 
function doCalculations1(whichControl) 
{ 
    //do calculations on whichControl.value 
    var outputValue = whichControl.value * 5; 
    //replace lblOne_tot with clientID after page is built 
    document.getElementById("lblOne_tot").value = outputValue; 
} 
</script> 

<asp:TextBox id="TextBox1" runat="server" onchange="javascript:doCalculations1(this);" /> 
+0

しかし、JavaScriptではどのように私はこの投稿は、偉大な例があるGridViewコントロールのテキストボックスにGridViewコントロールまたは示唆 –

+0

のいずれかの例を見つけることができます:[http://stackoverflow.com/a/1129062/743633](httpを:/ /stackoverflow.com/a/1129062/743633)列1,2,3などのテキストボックスのすべての値を格納する配列を作成することができます。他の方法は、動作します(ただし、あなたはフォームが変化するのを見る)は、フォームをロードし、ID(GridView1 $ ctl02 $ TextBox1など)を取得し、値をループします。次の行は、GridView1 $ ctl03 $ TextBox1、次の行GridView1 $ ctl04 $ TextBox1などです。 –

関連する問題