.NET Kendo Scheduler:动态更改数据源资源

Posted

技术标签:

【中文标题】.NET Kendo Scheduler:动态更改数据源资源【英文标题】:.NET Kendo Scheduler: dynamically change datasource resources 【发布时间】:2014-07-17 18:43:00 【问题描述】:

现在我正在使用这样的数据源:(带有过滤硬编码的参数)

   $(function () 
        $("#scheduler").kendoScheduler(
            date: new Date(Date.now()),
            startTime: new Date(2013, 5, 13, 9, 0, 0, 0),
            height: 800,
            timezone: "Etc/UTC",
            group: 
                resources: ["Rooms"]
            ,
            resources: [
                
                    name:"Rooms",
                    title: "Room",
                    field: "RoomID",
                    dataSource: 
                        transport:
                            
                                read:  url: "@html.Raw(Url.Action("Filter_Rooms", "Room", new
                                    pPar1= true,
                                    pPar2 = false,
                                    pPar3 = true,
                                         ))", dataType: "json" 
                            
                    
                

如您所见,这些参数仍然是硬编码的,我想在用户想要使用复选框时更改它们:

<div class="checkbox">
    <label>
    <input id="chkPar1" type="checkbox"> Parameter 1
    </label>
</div>
<div class="checkbox">
    <label>
    <input id="chkPar2" type="checkbox"> Parameter 2
    </label>
</div>   
    <a href="#" id="btnFilter" class="btn btn-outline btn-primary btn-lg btn-block">Filter</a>

我想在使用 javascript 检查按钮是否被单击时,然后将复选框参数存储在全局变量中,并在调度程序的传输读取中使用这些参数,但似乎你不能在这里使用 document.getelementbyId。

他们在这里建议Kendo UI Dynamically Change Datasource String (XML),但这似乎对我也不起作用..

var dynamicUrl = "Html.Raw(Url.Action('Filter_Rooms', 'Room', newpFilter = true, pCapacity = 25,pBeamer = true,pTelevision = false))', dataType: 'json'"
var scheduler = $("#scheduler").data("kendoScheduler");
scheduler.dataSource.transport.options.read.url = dynamicUrl;

那么如何动态更改这些参数或更新整个传输读取 url?

问候

【问题讨论】:

【参考方案1】:

试试这个:

var pFilter = (document.getElementById("someID").value);
var pCapacity = document.getElementById("someID").value;
var pBeamer = document.getElementById("someID").value;
var pTelevision = document.getElementById("someID").value;

var dynamicUrl = "Html.Raw(Url.Action('Filter_Rooms', 'Room', newpFilter = " + pFilter +  ", pCapacity = " + pCapacity + ",pBeamer = " + pBeamer + ",pTelevision = " + pTelevision + "))', dataType: 'json'"

可能有某种类型的字符串格式可以像在 C# 中一样使用,但我不确定。希望这行得通!

【讨论】:

【参考方案2】:

不确定它是否正是您所追求的,但一个好的参考框架可能是this example project。它非常简单地展示了如何在更改视图时加载新内容。你也许可以适应它。

【讨论】:

以上是关于.NET Kendo Scheduler:动态更改数据源资源的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 Kendo Scheduler 周视图?

我想在 Header 更改 Kendo ui Scheduler 的日期格式

在 Kendo UI Scheduler 上响应更改视图

Kendo UI Scheduler 禁用删除确认或更改其内容

在 Kendo Scheduler 自定义模板中绑定 DropDownList(ASP.NET MVC Wrapper 版本)

Kendo Scheduler DatePicker 事件