2011-04-15 9 views
9

मैं इस datatable सेटअप:jQuery DataTables का उपयोग कर एक चयनित पंक्ति में डेटा पर कब्जा करने के लिए कैसे

$(document).ready(function() { 
    $('#RectifiedCount').dataTable({ 
     "bJQueryUI": true, 
     "bProcessing": true, 
     "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]], 
     "bStateSave": true, 
     "sDom": '<"H"if>tr<"F"lTp>', 
     "aoColumns":[ 
        {'sname':'count_id', 'sType':'numeric', 'bVisible':false}, 
        {'sName':'count_type', 'sType':'string','bVisible':true}, 
        {'sName':'count_date', 'sType':'date','bVisible':true}, 
        {'sName':'count_count', 'sType':'numeric','bVisible':true}, 
        {'sName':'count_notes', 'sType':'string','bVisible':true} 
        ], 
     "oTableTools": { 
      "sRowSelect": "single", 
      "sSwfPath": "media/swf/copy_cvs_xls_pdf.swf", 
      "aButtons": [ {sExtends :'select_none' , 'sButtonText':'Clear Selection'}], 
      "fnRowSelected": function(node){ 
       var s=$(node).children(); 
       if($(s[0]).text()=='Delivery') return ; 
       $('select[name="count_type"]').val($(s[0]).text()); 
       $('input[name="count_date"]').val($(s[1]).text()); 
       $('input[name="count_count"]').val($(s[2]).text()); 
       $('textarea[name="count_notes"]').val($(s[3]).text()); 
      } 
     }, 
     'sScrollX':'100%' 
    }); 
}); 

जब मैं एक पंक्ति का चयन करें, मैं किसी न किसी रूप खेतों में पंक्ति के कोशिकाओं के मूल्यों की प्रतिलिपि बनाना चाहते जिन्हें 'नाम' विशेषताओं के समान नाम दिया गया है। मेरे पास 2 प्रश्न हैं:

  • क्या किसी चयनित पंक्ति में किसी सेल के मान तक पहुंचने के लिए कोई टेबलटूल विधि है? node['sName_whatever'].value की तरह कुछ अच्छा होगा।
  • मैं उन कक्षों का मूल्य कैसे प्राप्त कर सकता हूं जहां bVisible = false?

ईटीए समाधान

(महत्वहीन सामान बाहर छोड़ने)

$(document).ready(function() { 
    rctable=$('#RectifiedCount').dataTable({ 
     "aoColumns":[ 
        {'sname':'count_id', 'sType':'numeric', 'bVisible':false}, 
        {'sName':'count_type', 'sType':'string','bVisible':true}, 
        {'sName':'count_date', 'sType':'date','bVisible':true}, 
        {'sName':'count_count', 'sType':'numeric','bVisible':true}, 
        {'sName':'count_notes', 'sType':'string','bVisible':true} 
        ], 
     "oTableTools": { 
      "sRowSelect": "single", 
      "fnRowSelected": function(node){ 
       aData = rctable.fnGetData(node); //nice array of cell values 
       if(aData[0]=='Delivery') return ; 
       $('select[name="count_type"]').val(aData[0]); 
       $('input[name="count_date"]').val(aData[1]); 
       $('input[name="count_count"]').val(aData[2]); 
       $('textarea[name="count_notes"]').val(aData[3]);   } 
     } 
    }); 
}); 
+0

इस लाइन गलत है: 'AData = rctable.fnGetData (नोड);', यह होना चाहिए 'AData = rctable.fnGetData (नोड [0]); ', क्योंकि' नोड 'एक सरणी है। – Bizmarck

उत्तर

16

मैं निम्नलिखित किया: बेहतर तरीका बजाय

oTable = $('#RectifiedCount').dataTable(....); 

$('#RectifiedCount tbody tr').live('click', function (event) {   
    var aData = oTable.fnGetData(this); // get datarow 
    if (null != aData) // null if we clicked on title row 
    { 
     //now aData[0] - 1st column(count_id), aData[1] -2nd, etc. 
    } 
}); 
+2

आपने मुझे सही दिशा में इंगित किया है, लेकिन मैं 'fnRowSlected()' फ़ंक्शन – dnagirl

+0

के अंदर '.fnGetData()' फ़ंक्शन का उपयोग करने जा रहा हूं, मुझे विश्वास है कि आप 'fnRowSelected' के अंदर 'fnGetData' का भी उपयोग कर सकते हैं। हालांकि मुझे सटीक कोड के बारे में निश्चित नहीं है ... – a1ex07

0

Mutch एक क्लिक करें घटना hooking, बस का उपयोग कर jquery और tableTools:

"oTableTools": { 
"sRowSelect": "single", 
"fnRowSelected": function(node) { 
    var row = $(node).find('td'); 
    //all cells 
    $.each(row, function(index, td) { 
     console.log($(td).text()); 
    }); 

    console.log("Specific cell content: " + $(row[2]).text()); 

} 

}

संबंधित मुद्दे