1

ユーザーが数値のみを入力できる ASPxTextBox を含む ListView を作成しようとしています。多くの行と列のデータがあります。各行と列から合計値を計算する新しい行と列を追加したい

たとえば、次のようなデータがあるとします。

学生名 | 件名1 | 件名 2 | Subject3
-------------------------------------------------- ---------
ジョン ----------- | ------- 23 | --------45 | --------37
スミス ---------- | ------- 41 | --------22 | --------11
リンダ ---------- | ------- 35 | --------38 | --------23

こんな風になりたい

学生名 | 件名1 | 件名 2 | 件名3 | 合計
-------------------------------------------------- -----
ジョン ----------- | ------- 23 | --------45 | --------37 | 105
スミス ---------- | ------- 41 | --------22 | --------11 | --74
リンダ ---------- | ------- 35 | --------38 | --------23 | --96
--------------------------------------------------- -------------------
合計----------- | --------99 | -------105 | --------71 | 275

列(件名)の数は固定ですが、行の数はデータベースのデータによって異なります。

ここには主な問題が 2 つあり
ます。そのため、テキスト ボックスの 1 つがフォーカスを失うと、各行と列の合計値が再計算されます。
2. JavaScript を使用して ASPxTextBox の値にアクセスできません。私は使用してみました:

var test = document.getElementById('<%# Container.FindControl("txt_Subject1").ClientID %>')
var data = test.value;

しかし、うまくいかないようです。

次のコードでもエラーが発生します。

var test = document.getElementById('<%# Container.FindControl("txt_Subject1").ClientID %>')    
var data = test.GetValue();

ClientInstanceName を試したところ、常に最後の行の値のみが返されました。

var data = txt_Subject1.GetValue(); //doesn't work?

また、その機能の一部を使用したいので、ASPxTextBox を asp TextBox に変更したくありません。

4

1 に答える 1

0

行番号に基づいてClientInstanceName値を動的に割り当てることができます。

txt_Subject1_1
txt_Subject1_2
...
txt_Subject1_n

次に、javascriptを使用して合計を計算します。

var sum = 0;
for (var i = 1; i <= rowCount; i++) 
{
    sum += parseInt(window['txt_Subject1_' + i].GetValue());
}
于 2012-09-26T10:36:56.893 に答える