2013-11-25 69 views
-1

我有2級表的學生和標誌,每個班有不同數量的學生,asp.net的MVC批量插入

StudentTable

  • StudentId
  • StudentName

MarksTable

  • MarksId
  • StudentId
  • ExamDate
  • MarksScored

我想創建上,我想生成所有學生MarksTable結構在選擇類有一個形式,例如類第9 45名學生,我想爲每個學生生成45行1,並且想要批量插入MarksTable每個學生1行。

本頁我們允許教師選擇類,並與我們的更新與行數的DOM jQuery的,請大家幫忙

問候

+1

請張貼ü試圖 –

+0

是否有隱藏在某處規範問題的代碼?我看不到問號? – Liam

回答

1

將數據作爲JSON傳遞到服務器可能是您的解決方案。

現在假設你的網頁有一個45行的表,每行有5個文本框(比如輸入主題標記)。您需要遍歷所有行並構建您的json對象數組(每個代表學生)。

var students = []; 
$('#students tbody tr').each(function(indx, el){ 
    arrtd = $(el).find('td'); 
    var student_id = arrtd[0].innerHTML; 
    var student_name = arrtd[1].innerHTML; 
    var subject_1 = arrtd[2].innerHTML; 
    //... 
    students.append(
     { 
      studentid: student_id, 
      name: student_name, 
      ... 
     } 
    ); 
}); 

var stringify_result = JSON.stringify(students); 

該字符串化版本成爲服務器上相應操作的參數。您可以將其值分配給隱藏的變量並在服務器上提交表單;或者將其作爲參數傳遞給$.ajax調用。

在你需要使用newtonsoft JSON庫解析JSON字符串在服務器端:

public ActionResult BulkInsert(string students_json) 
{ 
    var jarr = JArray.Parse(students_json); 
    foreach(JObject obj in jarr) 
    { 
     var student_id = obj['studentid'].Value; 
     //... 
    } 
} 
0

try文件的上傳功能用於批量插入一次。