2013-08-20 27 views
6

Sadece jqGrid kullanmaya başladım ve özel bir sil düğmesi kullanarak satırları silmek istiyorum. Aşağıda kod parçacığını kullanıyorum:jqgrid satırları nasıl silinir

try { 
     var cellValue; 
     var id; 
     jQuery("#editDataGridList").jqGrid({ 
      datatype: "local", 
      width: 900, 
      height: 270, 
      colNames: ['Action', 'Interview id', 'Date of observation', 'Name of enumerator'], 
      onSelectRow: function (id) { 
       debugger; 
       var rowData = jQuery(this).getRowData(id);     
       cellValue = rowData['InterviewId']; 
      }, 
      colModel: [     
       { 
        name: 'actions', index: 'InterviewId', sortable: false, 
        formatter: function (rowId, cellval, colpos, rwdat, _act) { 

         return "<input type='button' id='btnid' value='delete' class='btn' onClick='deleteRecords(" + cellValue + ");' />"; 

        } 
       }, 
       { name: 'InterviewId', index: 'InterviewId' }, 
       { name: 'Date', index: 'Date' }, 
       { name: 'NameOfEnum', index: 'NameOfEnum' } 
      ], 

      multiselect: false, 
      caption: "Edit already entered data" 
     }); 
    } 
    catch (e) { 
     alert(e.message); 
    } 

Yukarıdaki kod

function deleteRecords(rowData) { 
    alert(rowData); 
} 

Maalesef ait satırda değeri tanımsız silinmek

için seçilen satır değerini geçmesi için bu işlev çağrısı kullanır. Satırları silmek için aynı yapıyı nasıl kullanabilirim? Silme biçimlendirici olduğu gibi

$('#editDataGridList').jqGrid('delRowData',rowid); 

cevap

3

Kendi sorunum için bir çözüm buldum.

formatter: function (rowId, cellval, colpos, rwdat, _act) { 
     var rowInterviewId = colpos.InterviewId.toString(); 
     return "<input type='button' id='" + rowInterviewId + "' value='delete' class='btn' 
     onClick='deleteRecords(this)' />";  
} 

ben sadece bu tüm ı düğmesinden gerekli özelliklere ancak en önemlisi görüşme kimlikleri olan düğme kimliği olma sahiptir işlev çağrısı düğmesi onclick olayına ve bir parametre olarak bu geçiş düğmenin ait olduğu satır.

10

aynı kapsamda tanımlı değil. İki şey deneyebilirsiniz:

  1. cellValue yerine silme fonksiyonu için biçimlendiriciden rowId argüman geçirin.
  2. BOTH işlevlerinin kapsamı dışında bir değişken bildirin ve ardından bu değişkeni onSelectRow işleyicinizde seçilen satırın kimlik değerine ayarlayın.
+0

@Waaqas ... sorun, yukarıdaki silme düğmesi html kodunu kullanarak sil düğmesini içeren satırın satır bilgisine erişemem ... ama içinde çalışabilir olanSelectRow. – JoseLuke

+1

da "delrowdata" arka ucu çağırmıyor. –

+0

Her iki işi de yapan özel bir yöntem yazın, ajax kullanarak ui satırını ve arka uçları siler. –

1

değişkeni cellValue kullanarak satır silebilirsiniz

+0

@AJ ... yeterince komik, formatlayıcıda sadece colpos parametresinin rowId de dahil olmak üzere diğerlerinin değeri olmadığı anlamına gelir. sonra her iki fonksiyonun dışında bir değişken belirlediğimde ve onSElectRow işleyicimde seçili satırın ID değerine bu değeri ayarladığımda, farklı silinen düğmelere tıklamam olsa bile (rowId) bu değer değişmeyecek, ancak sadece herhangi bir satırda sil düğmesi. Bir düğme üzerine tıkladığımda düğmelerin coz hücrelerine nasıl bağlanacağının zorluk olduğunu düşünüyorum. Bu düğme, bu düğmenin 1 veya 2 satırında olduğu herhangi bir bilgi içermiyor ... – JoseLuke

+0

O zaman dışarıda bir değişken bildirmeniz gerekiyor. jquery 'ready 'çağrısı,' onSelectRow 'satırına getirin ve sonra silme işleyicinizde alın. –

+0

@AJ. Lütfen silme işlevini, satırın aslında ızgaradan kaldırıldığı yerden paylaşın. Aslında o satırı ızgaradan nasıl çıkaracağımı anlayamıyorum. – shahjahan