【问题标题】:.NET Kendo Scheduler: dynamically change datasource resources.NET Kendo Scheduler:动态更改数据源资源
【发布时间】: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', new{pFilter = true, pCapacity = 25,pBeamer = true,pTelevision = false}))', dataType: 'json'"
var scheduler = $("#scheduler").data("kendoScheduler");
scheduler.dataSource.transport.options.read.url = dynamicUrl;

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

问候

【问题讨论】:

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


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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2014-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-07
        • 2012-08-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多