2012-02-22 5 views
0

ASP.NET MVC3 Razor Engine 및 jQuery 사용jqGrid PostData는 어떻게 사용해야합니까?

캘린더 (fullcalendar) 및 그리드 (jqgrid)가 있습니다. 캘린더에서 날짜를 선택하면 선택한 날짜를 기준으로 그리드를 업데이트해야합니다. 그리드에서 어떻게합니까? 나는 postdata를 사용하는 것에 대해 몇 가지 이야기를 보았지만 올바르게 작동하는 것처럼 보일 수는 없다.

JQuery와 :

currentMaintenanceGrid.jqGrid({ 
       url: '@Url.Action("GetCurrentMaintenanceItems", "Home")', 
       datatype: 'json', 
       mtype: 'POST', 
       colNames: ['Component Type', 'Serial Number', 'Facility', 'Building', 'Area', 'Schedule Type', 'Task Hours', 'Reschedule', 'ComponentScheduleID'], 
       colModel: [ 
        { name: 'ComponentType', index: 'A', width: 40 }, 
        { name: 'SerialNumber', index: 'B', width: 40 }, 
        { name: 'Facility', index: 'C', width: 400 }, 
        { name: 'Building', index: 'D' }, 
        { name: 'Area', index: 'E' }, 
        { name: 'ScheduleType', index: 'F' }, 
        { name: 'TaskHours', index: 'G' }, 
        { name: 'Reschedule', index: 'H' }, 
        { name: 'ID', index: 'j', key: true, hidden: true } 
       ], 
       pager: '#pager', 
       rowNum: 10, 
       rowList: [5, 10, 20, 50], 
       sortname: 'ComponentType', 
       sortorder: 'desc', 
       rownumbers: true, 
       viewrecords: true, 
       altRows: true, 
       //altclass: 'myAltRowClass', 
       height: '100%', 
       gridview: true, 
       jsonReader: { cell: "" }, 
       caption: 'Grid Title', 
      }); 

     $('#calendar').fullCalendar({ 
      theme: true, 
      header: { 
       left: 'prev', 
       center: 'title', 
       right: 'next' 
      }, 
      selectable: false, 
      defaultView: 'month', 
      editable: false, 
      dayClick: function (date, allDay, jsEvent, view) { 
       $(this).addClass('activeDay') 
       if (activeDay != this) { 
        $(activeDay).removeClass('activeDay') 
       } 
       activeDay = this; 
      } 
     }); 

컨트롤러 :

public ActionResult GetCurrentMaintenanceItems(string sidx, string sord, int page, int rows) 
     { 
      // TODO: Fix Testing Data so we don't have to hardcode dates 
      IQueryable<schedule> lstQuery = m_clsScheduleRepository.GetMaintenanceSchedules(Convert.ToDateTime("1/21/2010")); 

      return CreateMaintenanceGridJsonResult(lstQuery, false, sidx, sord, page, rows); 
     } 

는 지금 우리가 하드 코딩 날짜를 사용하고 명확하게 우리가 원하는 것이 아니다. 이 작업을 올바르게 시작하려면 어디에서 시작해야합니까?

답변

0

나는 fullcalendar 플러그인을 사용하지 않았지만 설명서에는 getDate에 대한 정보가 있습니다. 그리드의을 다시로드 할 때마다 에 캘린더에서 오늘에 대한 추가 정보를 보낼 수 있습니다. 이렇게 마십시오 당신은 속성 이름 'date'가 서버로 전송됩니다 추가 매개 변수가 될 경우

postData: { 
    date: function() { 
     return $('#calendar').fullCalendar('getDate'); 
    } 
} 

를 사용할 수 있습니다.

currentMaintenanceGrid.trigger('reloadGrid', [{page: 1}]); 
: 당신이 dayClickreloadGrid의 전화를 콜백에 포함

public ActionResult GetCurrentMaintenanceItems (string sidx, string sord, int page, 
               int rows, string date) { 
    ... 
} 

이 또한 내가 추천 : 그래서 당신은 GetCurrentMaintenanceItems 방법의 매개 변수 목록에 date 매개 변수를 포함해야한다

관련 문제