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

时间:2014-05-28 13:43:12

标签: asp.net-mvc razor kendo-ui kendo-scheduler kendo-ui-mvc

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

   $(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', new{pFilter = true, pCapacity = 25,pBeamer = true,pTelevision = false}))', dataType: 'json'"
var scheduler = $("#scheduler").data("kendoScheduler");
scheduler.dataSource.transport.options.read.url = dynamicUrl;

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

此致

2 个答案:

答案 0 :(得分:0)

试试这个:

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', new{pFilter = " + pFilter +  ", pCapacity = " + pCapacity + ",pBeamer = " + pBeamer + ",pTelevision = " + pTelevision + "}))', dataType: 'json'"

你可以在C#中使用某种类型的字符串格式,但我不确定。希望这有效!

答案 1 :(得分:0)

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