2010-11-30 5 views
2
{edit:true,add:true,del:false,search:false,refresh:true,view:false} , 
// edit option 
{ 
    beforeShowForm: function(formID) {  
     //alert("TESTALERT"); 
     jQuery('#tr_b_summe_cvvp', formID).show(); 
     jQuery('#tr_b_summe_lsv', formID).show(); 
     jQuery('#buchung', formID).click(function() { 
      var index = $(this)[0].selectedIndex; 
      if (index == 1)  { jQuery('#tr_b_summe_lsv', formID).hide(); } 
      else if (index == 2) { jQuery('#tr_b_summe_cvvp', formID).hide(); } 
      else if (index == 3) { jQuery('#tr_b_summe_cvvp', formID).show(); } 
      else if (index == 4) { jQuery('#tr_b_summe_lsv', formID).show(); } 
     });        
    } 
}, 

jqgrid를 사용하여 "동적 인"양식을 만들고 싶습니다. 두 번째 시도에서 동적 변경 행이 작동하지 않으면 경고()를 사용하면 양식이 제대로 작동합니다.beforeShowForm 동적 양식의 jqgrid

답변

2

recreateForm:true 옵션을 사용하는 것이 좋습니다. 제 생각에는 설정이 jqGrid 양식 편집의 기본 옵션이어야합니다.

문제는 기본 설정으로 recreateForm:false있는 jqGrid 그렇게 기능 만 beforeShowForm가 호출됩니다 처음에 양식 한 번만을 만들 수 있다는 것입니다. 또한 Add 및 Edit 양식을 모두 사용하는 경우 두 대화 상자에 대해 하나의 양식 만 작성됩니다. 그러면 대화 상자가 숨기거나 표시됩니다. 아주 이상한 효과를냅니다. 그래서 나는 항상 recreateForm:true 옵션을 사용하기 위해 항상 모든 것을 권장합니다.

+0

제안 사항으로 인해, 나는 recreateform - true가 기본값이 있습니다. 어쨌든 dataUrl에 정보를 캐시하여 행을 편집 할 때마다 해당 데이터를 다시로드하지 않아도됩니까? – leora

+0

@leora : 질문 [내 대답] (http://stackoverflow.com/a/21901410/315935)에 게시했습니다. – Oleg