2012-09-26 45 views
0

我想創建包含ASPxTextBox的ListView,用戶只能輸入數字值。有許多行和列的數據。我要添加新的行和列,從每一行和每一列計算總價值在asp.net中添加自動計算求和行和列列表視圖

舉例來說,如果我有數據是這樣的:

學生姓名| Subject1 | Subject2 | Subject3
----------------------------------------------- -----------
John ----------- | ------- 23 | -------- 45 | -------- 37
Smith ---------- | ------- 41 | -------- 22 | -------- 11
Linda ---------- | ------- 35 | -------- 38 | -------- 23

我想是這樣的

學生姓名| Subject1 | Subject2 |主題3 |總計
----------------------------------------------- -------------------
John ----------- | ------- 23 | -------- 45 | -------- 37 | 105
Smith ---------- | ------- 41 | -------- 22 | -------- 11 | --74
Linda ---------- | ------- 35 | -------- 38 | -------- 23 | --96
--------------------------------------------- ---------------------
總共----------- | -------- 99 | ------- 105 | -------- 71 | 275

列數(主題)是固定的,但行數取決於數據庫中的數據。

這裏有兩個主要問題:
1.我想要總和行和列在客戶端使用javascript執行計算。所以當其中一個文本框失去焦點時,它會重新計算每行和每列的總和值。
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,因爲我想使用它的某些功能。

回答

0

基於行數你可以dinamically分配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()); 
} 
+0

感謝回答。我會試試這個,然後讓你知道它是否適用於我的代碼。 –

+0

最後,我可以讓我的代碼工作。非常感謝。你真的是一個很大的幫助:D –