2012-05-01 2 views
0

I Explain 테이블의 문제점을 논의하기 전에 jqGrid를 사용하는 데 문제가 있습니다.
나는 4 개의 테이블 CostType, CurrencyUnit, Request, RequestCost를 가지고있다.
CostType 테이블 구조
디자인을위한 솔루션은 jqgrid로 작성하십시오

CostId  CostName 
-------  ---------- 
    1   permit 
    2   Warehouse receipt 
    3   Warehousing 

및 관련 구조

RequestId   RequestNo  WaybillNo 
------------------------------------------ 
1     100   120Ac30 
2     101   400CA852 

및 CurrencyUnit 테이블 stracture :

UnitId UnitName 
------------------ 
1   Dollar 
2   Pound 
3   Rial 

및 CostRequest 테이블 stracture

requestId CostId Amount CurrencyUnitId  Remark 
-------------------------------------------------------- 
1    2  200  3 
1    1  400  1 
012,351

enter image description here 이후 사용자가 상단 텍스트 상자에 어떤 요청을 입력하고 다음과 같이 버튼 검색을 클릭 할 수 있습니다 : 다음과 같이 enter image description here 사용자가이 요청을 변경하거나 일부 비용 금액을 입력 할 수 있습니다 다음 없기 때문에 6,

은 내가 채우기 페이지로드 그리드에서 원하는 : enter image description here 저장 버튼을 클릭하면 데이터베이스에 저장됩니다. Notes : jqGrid의 시동기입니다. 첫 번째 Grid를 채울 수 있습니다. 다른 두 단계는 구현할 수 없습니다. 도와주세요. 모두 감사합니다

답변

1

코드를 작성하지 않고 질문에 대답하기가 약간 어렵습니다.

"RequestNo"(예 : id = "requestNo") 및 "검색"버튼에 대한 입력 필드는 그리드상에서 <fieldset>의 간단한 컨트롤 일 수 있습니다. click "검색"버튼의 처리기는 $("#grid").trigger("reloadGrid", [{page:1}])을 호출 할 수 있습니다. 그리드 정의의 내부 당신은 당신은 editingRowIdundefined이없는 경우 마지막 편집 행을 저장 $("#grid").jqGrid("saveRow", editingRowId);를 부를 것이다 또한 "저장"버튼을 추가 할 수 있습니다 postData

var $grid = $("#grid"), 
    editingRowId, 
    myEditParam = { 
     keys: true, 
     oneditfunc: function (id) { editingRowId = id; }, 
     afterrestorefunc: function (id) { editingRowId = undefined; }, 
     aftersavefunc: function (id) { editingRowId = undefined; } 
    }; 

$grid.jqGrid({ 
    ... 
    postData: { 
     // add requestNo parameter to the request 
     requestNo: function() { return $("#requestNo").val(); } 
    }, 
    beforeRequest: function() { 
     // stop request to the server for empty requestNo 
     return $("#requestNo").val() !== "" ? true : false; 
    }, 
    onSelectRow: function (id) { 
     if (id !== editingRowId) { 
      if (typeof editingRowId !== "undefined") { 
       // save previously editing row 
       $(this).jqGrid("saveRow", editingRowId, myEditParam); 
      } 
      // start inline editing. The user should save the row by pressing ENTER 
      $(this).jqGrid("editRow", id, myEditParam); 
     } 
    } 
    ... 
}); 

처럼 사용할 수 있습니다.

편집 모드에서보고 싶은 모든 열에 editable: true을 추가하는 것이 중요합니다. 모눈의 모든 편집 열을 사용하려면 cmTemplate: {editable: true} jqGrid 옵션을 사용할 수 있습니다. colModel에 정의 된 열 정의의 기본값을 변경합니다.

edittype: "select", editoptions: { value: "Dollar:Dollar; Pound:Pound; Rial:Rial" } 
+0

내가 편집 가능한 인라인을 구현 원, 어떻게 구현하기 :

는 열 정의에 추가 속성을 포함해야 "CurrencyUnit"열에서 드롭 다운을합니다. 도와 줘서 고마워. – Pouya