2015-02-03 2 views
0

해당 연락처와 연결된 연락처 편집 양식에 메모가 들어있는 JQGrid가 있습니다. Add New Note 기능을 작동 시키려고하는데 컨트롤러에 ContactId을 전달할 수 없습니다. ContactIdEditDelete과 함께 표시되며 잘 작동하는 것 같습니다. NoteAdd New의 컨트롤러에 전달이 아니라 ContactIdJQGrid 새 레코드 추가

보기 JQuery와

$("#JQGrid1").jqGrid({ 
    url: '@Url.Action("GetNotes", "Contact")', 
    editurl: '@Url.Action("EditNote", "Contact")', 
    mtype: "GET", 
    datatype: "json", 
    page: 1, 
    postData: { id: document.getElementById('SelectedContact_ContactID').value }, 
    jsonReader: { id: document.getElementById('SelectedContact_ContactID').value }, 
    prmNames: { id: document.getElementById('SelectedContact_ContactID').value }, 
    colNames: ["Id", "ContactId", "Note", "Date Created", "Created By"], 
    colModel: [ 
     { editable: true, key: true, width: 50, name: "ID", hidden: true }, 
     { editable: true, width: 60, name: "ContactId", hidden: true }, 
     { editable: true, width: 460, name: "Note", hidden: false }, 
     { 
      editable: false, 
      width: 160, 
      name: "DateCreated", 
      formatter: "date", 
      formatoptions: { srcformat: "m/d/Y h:i:s A", newformat: "y-m-d" }, 
      hidden: false 
     }, 
     { editable: false, width: 160, name: "CreatedBy", hidden: false }, 
    ], 
    height: "auto", 
    caption: "Notes", 
    rowNum: 5, 
    pager: "#JQGrid1_pager", 
    loadComplete: function() { 
     //alert("OK"); 
    }, 
    loadError: function(jqXHR, textStatus, errorThrown) { 
     alert('HTTP status code: ' + jqXHR.status + "\n" + 
      'textStatus: ' + textStatus + "\n" + 
      'errorThrown: ' + errorThrown); 
     alert('HTTP message body (jqXHR.responseText): ' + "\n" + jqXHR.responseText); 
    }, 
}).jqGrid('navGrid', '#JQGrid1_pager', { edit: true, add: true, del: true, search: false, view: false, refresh: true }, 
{ 
    // edit options 
    closeAfterEdit: true, 
}, 
{ 
    //add options 
    closeAfterAdd: true, 
}, 
{ 
    // del options 

}); 

컨트롤러 코드

[HttpPost] 
    public ActionResult EditNote(string oper, int? ID, int ContactId, string Note) 
    { 
     switch (oper) 
     { 
      case "add": 
      { 
       ContactNote cn = new ContactNote 
       { 
        ContactId = (int)ContactId, 
        Note = Note, 
        DateCreated = DateTime.Now, 
        CreatedBy = User.Identity.Name 
       }; 
       _contactNoteRepository.Upsert(cn); 
       return Content("true"); 
      } 
      case "del": 
       _contactNoteRepository.Delete((int)ID); 
       return Content("true"); 
      case "edit": 
      { 
       ContactNote cn = new ContactNote 
       { 
        ID = (int)ID, 
        ContactId = (int)ContactId, 
        Note = Note, 
        DateCreated = DateTime.Now, 
        CreatedBy = User.Identity.Name 
       }; 
       _contactNoteRepository.Upsert(cn); 
       return Content("true"); 
      } 
     } 

     return Content("false"); 
    } 

답변

1

나는

editoptions: {defaultValue:'aValue'} 

그래서 내가 편집 한 해결책을 발견 줄은

{ editable: true, width: 60, name: "ContactId", hidden: true }, 

{ editable: true, width: 60, name: "ContactId", hidden: true, editoptions: {defaultValue:document.getElementById('SelectedContact_ContactID').value} }, 

및이 형태로 contactId를 채워되고 상기 제어기에 전달 방법.