검도

2013-06-19 4 views
0

확인 새 데이터 소스와 트 리뷰, 그래서 여기에이 상황이있다. 트리 위에는 사용자를 선택하기위한 검도 드롭 다운 목록이 있습니다. 검도

public JsonResult WorkedHours(uint? id) 
    { 
     DocObjectArray docObjects = null; 
     if (id == null) 
     { 
      // get root elements 
      var loggedInUserRef = OmanagerUtils.GetInstance().LoggedInUser; 
      if (loggedInUserRef != null && loggedInUserRef.GetObject() != null && loggedInUserRef.GetObject().SubObjects != null) 
      { 
       for (int i = 0; i < loggedInUserRef.GetObject().SubObjects.GetLength(); i++) 
       { 
        var item = loggedInUserRef.GetObject().SubObjects.GetAt(i); 
        if (item.ToString() == TaskManagerConstants.UserWorkHours) 
        { 
         docObjects = item.TreeSubObjects; 
         break; 
        } 
       } 
      } 
     } 
     else 
     { 
      // get sub objects of a root object 
      var rootObj = new DocObjectRef((int)id); 
      docObjects = rootObj.GetObject().TreeSubObjects; 
     } 
     var returnDocObjects = new List<OmanagerItem>(); 

     for (int i = 0; i < docObjects.GetLength(); i++) 
     { 
      var item = docObjects.GetAt(i); 
      var hasChildren = true; 
      if (item.TreeSubObjects == null) 
      { 
       hasChildren = false; 
      } 
      else 
      { 
       if (item.TreeSubObjects.GetLength() == 0) 
       { 
        hasChildren = false; 
       } 
      } 
      var listItem = new OmanagerItem 
      { 
       hasChildren = hasChildren, 
       id = item.GetOID(), 
       Name = item.ToString() 
      }; 
      returnDocObjects.Add(listItem); 
     } 
     return Json(returnDocObjects, JsonRequestBehavior.AllowGet); 
    } 

지금, 문제는 내가 드롭 다운 목록에서 사용자를 선택하고이 새로운 데이터로 트리를 새로 고침 할 수 있어야한다는 것입니다 :

트리에 의해 호출 컨트롤러 방법이다.

$("#employee").kendoDropDownList({ 
       change: function() { 
        var postdata = { 
         id:$("#employee").val() 
        } 
        $.ajax({ 
         url: "TaskManager/WorkedHours", 
         cache: false, 
         type: "POST", 
         data: postdata, 
         success: function (data) { 
          $("#treeview").data("kendoTreeView").setDataSource(data); 
         }, 
        }); 
       } 
      }); 

문제는이 데이터로 무엇입니까? 내 시도가 실제로 효과가 없었기 때문에.

많은 감사.

답변

1

당신은 WorkedHours 행동에 속성을 OutputCache를 사용할 수 있습니다 : 그것은 내 경우 :

0

어쩌면이 작은 조각이 당신에게 어떤 도움이다에 도움이

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "None")] 
public JsonResult WorkedHours(uint? id) 
{ 
// rest of method 
} 

. 내 드롭 다운의 change 이벤트에있는 코드와 유사하게 TreeView DataSource의 요청 데이터를 변경하는 함수를 호출하고 있습니다.

function loadTreeViewData() { 
    var employee = $('#employee').getKendoDropDownList().dataItem(); 
    WorkedHoursDataSource.transport.options.read.data = {Employee_Id:employee.id}; 

    WorkedHoursDataSource.read(); 
} 
:이 데이터를 다시 읽도록-

을 변경 한 후, 상기 데이터 소스의 read() 핸들러를 호출

관련 문제