动态绑定数据 dhtmlx 日历 mvc

bind data dynamically dhtmlx calendar mvc

我目前在带有 MVC 的应用程序中使用 DHTMLX 日历。 现在我默认加载所有事件如下:

 public ActionResult Index()
            {

                var scheduler = new DHXScheduler(this);

                scheduler.LoadData = true;
                scheduler.EnableDataprocessor = true;
                ViewBag.EmpId = new SelectList(_userRegisterViewModel.GetEmpPrimary(), "EmpId", "First_Name");

                return View(scheduler);
            }

        /* public ContentResult Data()
                {  
              var data = new SchedulerAjaxData(new TimesheetEventDataContext().Events);
               ViewBag.EmpId = new SelectList(_userRegisterViewModel.GetEmpPrimary(), "EmpId", "First_Name");              
              return (ContentResult)data;
            }*/
     public ContentResult Data(int UserId)
            {

                ViewBag.EmpId = new SelectList(_userRegisterViewModel.GetEmpPrimary(), "EmpId", "First_Name");


                if (UserId != null)
                {
                    var data = new SchedulerAjaxData(new TimesheetEventDataContext().Events.Where(a => a.CreatedBy == UserId.ToString()));
                    ViewBag.EmpId = new SelectList(_userRegisterViewModel.GetEmpPrimary(), "EmpId", "First_Name");
                    return (ContentResult)data;
                }
                else
                {
                    var data = new SchedulerAjaxData(new TimesheetEventDataContext().Events.Where(a => a.CreatedBy == Session["EmpId"].ToString()));
                    ViewBag.EmpId = new SelectList(_userRegisterViewModel.GetEmpPrimary(), "EmpId", "First_Name");
                    return (ContentResult)data;              
                }
            }

现在我想通过 selection 用户在下拉列表中加载数据。因此,我将 userid 传递给控制器​​以获取该特定用户创建的事件。 我的查看页面如下:

<!DOCTYPE html>
<html>
<head>
    <title>Timesheet Events</title>
    <style>
        body
        {
            background-color:#eee;
        }
    </style>
    <script src="~/Scripts/jquery-2.1.4.min.js"></script>    
    <script type="text/javascript">    
     $(document).ready(function () {
            $('#ddlUsers').change(function () {
                emId = $(this).val();
                window.location.href = "/Calendar/Data?UserId=" + emId;              
            });
      });
    </script>   
</head>
<body>
    <div style="height:700px;width:900px;margin:0 auto;padding-top:10%;">
        <table>
            <tr>
                <td>
                    Select User :
                </td>
                <td style="width:30%;">
                    @Html.DropDownList("EmpId", null, "-- Choose --", new { @class = "form-control", id = "ddlUsers" })
                </td>
                <td colspan="10">
                    <div id="calendar"></div>
                </td>
            </tr>
        </table>
        @Html.Raw(Model.Render())
    </div>
</body>
</html>

现在,当我 select 用户时,它会将 id 传递给控制器​​,但不会加载基于该 id 的日历视图.. 谁能帮我做这个.. 提前致谢..

我认为您的#ddlUsers 处理程序所做的是将浏览器导航到数据操作,这不是您需要的。 尝试使用 dhtmlxScheduler

的客户端 API 重新加载数据
$('#ddlUsers').change(function () {
    var emId = $(this).val();

    scheduler.clearAll();
    scheduler.load("/Calendar/Data?UserId=" + emId;, "json");
});

相关文档:

http://docs.dhtmlx.com/scheduler/api__scheduler_clearall.html http://docs.dhtmlx.com/scheduler/api__scheduler_load.html