JQuery DataTables Editor---頁面內容修改&&數據庫信息修改 (2)


接上篇博文,詳細說一下js代碼以及JQuery DataTables Editor---頁面內容修改&&數據庫信息修改遇到的問題和解決辦法。

1.關於dialog

   初始化:

 1  $("#e_Attributes").dialog({
 2         modal: true,
 3         autoOpen: false,
 4         show: {
 5             effect: "blind",
 6             duration: 1000
 7         },
 8         hide: {
 9             effect: "explode",
10             duration: 1000
11         },
12         width: 400
13     });

    dialog 在初始化的時候,要設置 modal為true,這是一個遮蔽層,當dialog彈框出現,只能操作dialog里面的內容。這樣的好處在於一次只讓dialog 出現一次,便於對具體datatables的操作。

    關閉:

1 function dialogClose() {
2         $("#e_Attributes").dialog("close");
3     }

    當dialog中的ajax異步更新成功的時候,調用上面的代碼關閉dialog。


2.關於datatables

   初始化:

 1  var editor;
 2   //聲明datatable
 3  $("#gridtable").dataTable().fnDestroy();
 4     editor = $('#gridtable').dataTable({
 5            "bInfo":false,
 6            "bServerSide": false,
 7            'bPaginate': false,                      //是否分頁。
 8            "bProcessing": false,                    //當datatable獲取數據時候是否顯示正在處理提示信息。
 9            'bFilter': false,                       //是否使用內置的過濾功能。
10            'bLengthChange': false,                  //是否允許用戶自定義每頁顯示條數。
11            'sPaginationType': 'full_numbers',      //分頁樣式
12   });

     首先聲明了editor,在datatables初始化的時候為editor賦值,這樣便於我們對已經初始化的datatables操作。
     $("#gridtable").dataTable().fnDestroy();這一段代碼,是將先前聲明的datatable destroy。沒有此段代碼,當頁面刷新的時候,就會出現dataTable已經聲明過了,無需再聲明的錯誤的警告,這個將錯誤不是每次都出現,至於具體的原因現在還沒有找到,但是加上這段代碼,就沒有這個錯誤了。

     dataTable的樣式大家可以自己設置。

3.datatables的操作

   單擊選中行變色以及獲取選中行的內容:

 1 //單擊,取值,改樣式
 2 $("#gridtable tbody tr").click(function (e) {
 3       if ($(this).hasClass('row_selected')) {
 4                 $(this).removeClass('row_selected');
 5         }
 6        else {
 7                 editor.$('tr.row_selected').removeClass('row_selected');
 8                 $(this).addClass('row_selected');
 9                 var aData = editor.fnGetData(this);
10                 ......//得到選中行的值,這些值在aData中,是以數組的形式出現,可以對這組值進行操作
11               }
12 });

    單擊某一行,如果此行已經被選中,則去除樣式,如果沒有選中,則 $(this).addClass('row_selected'),可以添加自己想要的樣式。
    var aData = editor.fnGetData(this);可以得到點擊行的值,上面代碼中是得到新選中行的所有值。

    雙擊選中行變色,獲取選中行的內容以及彈出dialog:

 1 //雙擊
 2 $("#gridtable tbody tr").dblclick(function () {
 3             if ($(this).hasClass('row_selected')) {
 4  
 5             }
 6             else {
 7                 editor.$('tr.row_selected').removeClass('row_selected');
 8                 $(this).addClass('row_selected');
 9             }
10 
11             var aData = editor.fnGetData(this);
12             ......//對得到的數據可以操作
13              $("#e_Attributes").dialog("open");//打開dialog
14 
15 });

     雙擊的時候選中行變色以及獲取選中行的內容和單擊的時候一樣,不過雙擊的時候多加了editor.$('tr.row_selected').removeClass('row_selected')代碼,因為同一個datatables中選中行我們設為互斥的,一次最多只能選中一行,此段代碼可以將先前選中的行的樣式去掉。經過測試,我們不用判斷原先有沒有選中行,這段代碼都能很好的工作。
     雙擊以后就可以打開dialog, $("#e_Attributes").dialog("open")用於打開dialog。

     添加操作:

1  //添加
2 $("#add").click(function () {
3             editor.$('tr.row_selected').removeClass('row_selected');
4             putNullValue();
5             $("#e_Attributes").dialog("open");
6 });

     當點擊add按鈕的時候,將對話框中的選中行樣式去掉,將彈出框里面的內容全部清除,最后打開dialog。
     編輯操作:

1  //編輯
2 $("#edit").click(function () {
3             var productAttributeID = $("#productAttributeID").val();
4             if (productAttributeID != "" && productAttributeID != null) {
5                 $("#e_Attributes").dialog("open");
6             }
7 
8 });

     單擊編輯按鈕的操作看着很簡單,因為我們在單擊選中行的時候已經將工作做好了---得到選中行的值,並且賦給dialog中相應的元素。所以只用打開dialog即可。
     刪除操作:

 1  //刪除
 2 $("#delete").click(function () {
 3             var productAttributeID = $("#productAttributeID").val();
 4             var productID = $("#productID").val();
 5             if (productAttributeID != null && productAttributeID != "") {
 6                 if (confirm("Delete?")) {
 7                     $.ajax({
 8                         type: "GET",
 9                         url: "@Url.Action("DeleteAttribute", "Product")",
10                         data: { ProductID: productID, ProductAttributeID: productAttributeID },//參數名要和Action 中的參數名相同
11                         dataType: "html",
12                         cache: false,
13                         success: function (result) {
14                             $("#d_Attributes").html(result);
15                             $("#productAttributeID").val(null);
16                         }
17                     });
18                 }
19             }
20  });

      刪除操作使用異步更新,刪除時彈出的警告框代碼為 if(confirm("需要顯示的內容")){}。


      現在我們需要的操作已經完成。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM