0

今、私は次のようなデータソースを使用しています: (ハードコードされたフィルタリングするパラメータを使用)

   $(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 全体を更新したりするにはどうすればよいでしょうか?

よろしく

4

2 に答える 2

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# のように使用できる何らかのタイプの文字列形式が存在する可能性がありますが、よくわかりません。これがうまくいくことを願っています!

于 2014-06-10T14:30:48.573 に答える