Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 剑道UI:具有列表视图的自定义窗口_Javascript_Kendo Ui_Telerik_Kendo Window_Kendo Listview - Fatal编程技术网

Javascript 剑道UI:具有列表视图的自定义窗口

Javascript 剑道UI:具有列表视图的自定义窗口,javascript,kendo-ui,telerik,kendo-window,kendo-listview,Javascript,Kendo Ui,Telerik,Kendo Window,Kendo Listview,我想定制剑道窗口,里面有一些控件,2剑道列表视图,剑道按钮添加,剑道按钮删除。但现在我只想在剑道窗口的列表视图中显示我的数据列表 <script type="text/x-kendo-template" id="myTemplate"> <li>#: subPhase #</li> </script> <script type="text/x-kendo-template" id="template"> <

我想定制剑道窗口,里面有一些控件,2剑道列表视图,剑道按钮添加,剑道按钮删除。但现在我只想在剑道窗口的列表视图中显示我的数据列表

<script type="text/x-kendo-template" id="myTemplate">
        <li>#: subPhase #</li>
</script>
<script type="text/x-kendo-template" id="template">
    <div id="details-container" class="row" data-role="view" data-reload="true">
        <div id="contractListLeft" class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
            <ul id="sortable-listC" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                //looping list data in here
            </ul>
        </div>
        <div class="col-xs-12 col-sm-12 col-md-3 col-lg-4">
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                <button class="btn" onclick="addGroup()">Add</button>
            </div>
        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
            &nbsp;
        </div>
        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
            <button class="btn" onclick="removeGroup()">Remove</button>
        </div>
        </div>
        <div id="contractListRight"  class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
            <ul id="sortable-listD" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                //looping list data added when button "addGroup" clicked 
            </ul>
        </div>
    </div>
    <div class="row">
        <div class="col-xs-10 col-md-10 col-sm-10 col-lg-10">&nbsp;</div>
        <div class="col-xs-1 col-md-1 col-sm-1 col-lg-1">
            <a class="k-window-action k-link" href="\\#"><span class="">Close</span></a>
        </div>
    </div>   
</script>
我有如下javascript:

            //get template window
            var detailsTemplate = kendo.template($("#template").html());

            //make kendo window
            $("#contractDetail").kendoWindow({
                  title: "Edit Contract List",
                  modal: true,
                  visible: false,
                  resizable: false,
                  actions: ["Close"],
                  width: 800
            });

            //get data=[{"id":"1","subPhase":"Sub1"},{"id":"2","subPhase":"Sub2"}]
            $.ajax({
                dataType : "json", async: false,
                url : "/lah/getIntermediaryParameter"}).done(function(data) {
                    groupContracts = data;
            }); 

            //click button to openModal
            $("#openModalContract").click(function () {
                 $("#contractDetail").parent().css("top", "0px"); //make it to the top left
                 $("#contractDetail").parent().css("left", "0px"); //make it to the top left
                 $("#contractDetail").data("kendoWindow").open();
                 $("#contractDetail").data("kendoWindow").content(detailsTemplate(groupContracts)); //load template
                 $("#contractDetail").data("kendoWindow").center(); //make it center
                 $("#sortable-listC").kendoListView({
                      dataSource: {
                          data: groupContracts
                      }
                      template: kendo.template($("#myTemplate").html()) //get template  <li>
                 });

                 $("#sortable-listC").kendoSortable({
                     connectWith: "#sortable-listD" //for dragdrop
                 });

                 $("#sortable-listD").kendoSortable({
                     connectWith: "#sortable-listC" //for dragdrop
                 });

            });

            //make custom button close, but its not work
            $('#contractDetail').data().kendoWindow.bind('refresh',function(e){
                var win = this;
                $("#closeButtonModal").click(function(){
                     $("#contractDetail").data("kendoWindow").close();
                })
            })
<script type="text/x-kendo-template" id="myTemplate">
        <li>#: subPhase #</li>
</script>
<script type="text/x-kendo-template" id="template">
    <div id="details-container" class="row" data-role="view" data-reload="true">
        <div id="contractListLeft" class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
            <ul id="sortable-listC" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                //looping list data in here
            </ul>
        </div>
        <div class="col-xs-12 col-sm-12 col-md-3 col-lg-4">
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                <button class="btn" onclick="addGroup()">Add</button>
            </div>
        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
            &nbsp;
        </div>
        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
            <button class="btn" onclick="removeGroup()">Remove</button>
        </div>
        </div>
        <div id="contractListRight"  class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
            <ul id="sortable-listD" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                //looping list data added when button "addGroup" clicked 
            </ul>
        </div>
    </div>
    <div class="row">
        <div class="col-xs-10 col-md-10 col-sm-10 col-lg-10">&nbsp;</div>
        <div class="col-xs-1 col-md-1 col-sm-1 col-lg-1">
            <a class="k-window-action k-link" href="\\#"><span class="">Close</span></a>
        </div>
    </div>   
</script>
//获取模板窗口
var detailsTemplate=kendo.template($(“#template”).html();
//做剑道窗口
$(“#合同细节”)。肯多文多({
标题:“编辑合同清单”,
莫代尔:是的,
可见:假,
可调整大小:false,
操作:[“关闭”],
宽度:800
});
//获取数据=[{“id”:“1”,“子阶段”:“Sub1”},{“id”:“2”,“子阶段”:“Sub2”}]
$.ajax({
数据类型:“json”,异步:false,
url:“/lah/getIntermediaryParameter”}).done(函数(数据){
分组合同=数据;
}); 
//单击按钮打开模式
$(“#openModalContract”)。单击(函数(){
$(“#contractDetail”).parent().css(“top”,“0px”);//使其位于左上角
$(“#contractDetail”).parent().css(“left”,“0px”);//将其置于左上角
$(“#合同细节”).data(“kendoWindow”).open();
$(“#contractDetail”).data(“kendoWindow”).content(detailsTemplate(groupContracts));//加载模板
$(“#contractDetail”).data(“kendoWindow”).center();//使其成为中心
$(“#可排序列表”).kendoListView({
数据源:{
数据:集团合同
}
模板:kendo.template($(“#myTemplate”).html()//获取模板
  • }); $(“#可排序列表”).kendoSortable({ 与dragdrop的“#可排序列表”//连接 }); $(“#可排序列表”).kendoSortable({ 与dragdrop的“#可排序列表”//连接 }); }); //使自定义按钮关闭,但它不起作用 $('#contractDetail').data().kendoWindow.bind('refresh',函数(e){ var win=这个; $(“#CloseButtonModel”)。单击(函数(){ $(“#合同细节”).data(“kendoWindow”).close(); }) })
  • 这是我的模板:

    <script type="text/x-kendo-template" id="myTemplate">
            <li>#: subPhase #</li>
    </script>
    <script type="text/x-kendo-template" id="template">
        <div id="details-container" class="row" data-role="view" data-reload="true">
            <div id="contractListLeft" class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <ul id="sortable-listC" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                    //looping list data in here
                </ul>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                    <button class="btn" onclick="addGroup()">Add</button>
                </div>
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                &nbsp;
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                <button class="btn" onclick="removeGroup()">Remove</button>
            </div>
            </div>
            <div id="contractListRight"  class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <ul id="sortable-listD" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                    //looping list data added when button "addGroup" clicked 
                </ul>
            </div>
        </div>
        <div class="row">
            <div class="col-xs-10 col-md-10 col-sm-10 col-lg-10">&nbsp;</div>
            <div class="col-xs-1 col-md-1 col-sm-1 col-lg-1">
                <a class="k-window-action k-link" href="\\#"><span class="">Close</span></a>
            </div>
        </div>   
    </script>
    
    
    
  • #:子阶段#
    • //在这里循环列表数据
    添加 去除
      //单击“添加组”按钮时添加的循环列表数据

    所以我想在剑道窗口中显示GroupContracts列表,但始终没有数据。当我尝试签入console.log()时,我发现有许多对象。如何组合剑道窗口和剑道列表视图?

    [编辑]:这只是一个示例,您必须在Javascriot和html中添加所有WidJet,如:

    <script type="text/x-kendo-template" id="myTemplate">
            <li>#: subPhase #</li>
    </script>
    <script type="text/x-kendo-template" id="template">
        <div id="details-container" class="row" data-role="view" data-reload="true">
            <div id="contractListLeft" class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <ul id="sortable-listC" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                    //looping list data in here
                </ul>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                    <button class="btn" onclick="addGroup()">Add</button>
                </div>
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                &nbsp;
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                <button class="btn" onclick="removeGroup()">Remove</button>
            </div>
            </div>
            <div id="contractListRight"  class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <ul id="sortable-listD" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                    //looping list data added when button "addGroup" clicked 
                </ul>
            </div>
        </div>
        <div class="row">
            <div class="col-xs-10 col-md-10 col-sm-10 col-lg-10">&nbsp;</div>
            <div class="col-xs-1 col-md-1 col-sm-1 col-lg-1">
                <a class="k-window-action k-link" href="\\#"><span class="">Close</span></a>
            </div>
        </div>   
    </script>
    
    试着做这样的事情

    <script type="text/x-kendo-template" id="myTemplate">
            <li>#: subPhase #</li>
    </script>
    <script type="text/x-kendo-template" id="template">
        <div id="details-container" class="row" data-role="view" data-reload="true">
            <div id="contractListLeft" class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <ul id="sortable-listC" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                    //looping list data in here
                </ul>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                    <button class="btn" onclick="addGroup()">Add</button>
                </div>
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                &nbsp;
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                <button class="btn" onclick="removeGroup()">Remove</button>
            </div>
            </div>
            <div id="contractListRight"  class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <ul id="sortable-listD" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                    //looping list data added when button "addGroup" clicked 
                </ul>
            </div>
        </div>
        <div class="row">
            <div class="col-xs-10 col-md-10 col-sm-10 col-lg-10">&nbsp;</div>
            <div class="col-xs-1 col-md-1 col-sm-1 col-lg-1">
                <a class="k-window-action k-link" href="\\#"><span class="">Close</span></a>
            </div>
        </div>   
    </script>
    
    var myWindow = $('#contractDetail').kendoWindow({
        width: 500,
        height: 400,
    // here you can do you configuration
        open: function() {
    
    //here you can instanciate your widgets inside your window like:
     $("#sortable-listC").kendoListView({
                      dataSource: {
                          data: groupContracts
                      }
                      template: kendo.template($("#myTemplate").html()) //get template  <li>
                 });
    
                 $("#sortable-listC").kendoSortable({
                     connectWith: "#sortable-listD" //for dragdrop
                 });
    
                 $("#sortable-listD").kendoSortable({
                     connectWith: "#sortable-listC" //for dragdrop
                 });
        }
    });
    
    //and then show window
    myWindow.open();
    
    var myWindow=$(“#合同细节”).kendoWindow({
    宽度:500,
    身高:400,
    //在这里你可以做你的配置
    打开:函数(){
    //在这里,您可以在窗口中实例化小部件,如:
    $(“#可排序列表”).kendoListView({
    数据源:{
    数据:集团合同
    }
    模板:kendo.template($(“#myTemplate”).html()//获取模板
  • }); $(“#可排序列表”).kendoSortable({ 与dragdrop的“#可排序列表”//连接 }); $(“#可排序列表”).kendoSortable({ 与dragdrop的“#可排序列表”//连接 }); } }); //然后显示窗口 myWindow.open();
  • 你必须看起来像

    <script type="text/x-kendo-template" id="myTemplate">
            <li>#: subPhase #</li>
    </script>
    <script type="text/x-kendo-template" id="template">
        <div id="details-container" class="row" data-role="view" data-reload="true">
            <div id="contractListLeft" class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <ul id="sortable-listC" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                    //looping list data in here
                </ul>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                    <button class="btn" onclick="addGroup()">Add</button>
                </div>
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                &nbsp;
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                <button class="btn" onclick="removeGroup()">Remove</button>
            </div>
            </div>
            <div id="contractListRight"  class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <ul id="sortable-listD" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                    //looping list data added when button "addGroup" clicked 
                </ul>
            </div>
        </div>
        <div class="row">
            <div class="col-xs-10 col-md-10 col-sm-10 col-lg-10">&nbsp;</div>
            <div class="col-xs-1 col-md-1 col-sm-1 col-lg-1">
                <a class="k-window-action k-link" href="\\#"><span class="">Close</span></a>
            </div>
        </div>   
    </script>
    
     <div id="contractDetail">
            <div id="details-container" class="row" data-role="view" data-reload="true">
        <div id="contractListLeft" class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
            <ul id="sortable-listC" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                //looping list data in here
            </ul>
        </div>
        <div class="col-xs-12 col-sm-12 col-md-3 col-lg-4">
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                <button class="btn" onclick="addGroup()">Add</button>
            </div>
        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
            &nbsp;
        </div>
        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
            <button class="btn" onclick="removeGroup()">Remove</button>
        </div>
        </div>
        <div id="contractListRight"  class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
            <ul id="sortable-listD" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                //looping list data added when button "addGroup" clicked 
            </ul>
        </div>
    </div>
    <div class="row">
        <div class="col-xs-10 col-md-10 col-sm-10 col-lg-10">&nbsp;</div>
        <div class="col-xs-1 col-md-1 col-sm-1 col-lg-1">
            <a class="k-window-action k-link" href="\\#"><span class="">Close</span></a>
        </div>
    </div>   
    </div>
    
    
    
      //在这里循环列表数据
    添加 去除
      //单击“添加组”按钮时添加的循环列表数据

    仅举一个例子,希望此帮助

    如果我使用此代码,它可以显示我的listview,但不能显示整个模板。我需要ListVIEW的左侧和右侧,在中间,有2个按钮。不管怎样,谢谢你的回答@MarcoIt只是一个例子,然后你可以添加你所有的剑道小部件(js和html),我编辑了这个例子,考虑到你的需要顺便问一下,我放了html还是js?因为当我把它放在html上时,窗口会显示空白内容。如果我把它放在JS上,加载$(“#contractDetail”)的jquery就会出错。是一个html标记,请尝试在js上执行类似$(“#contractDetail”).html()的操作
    <script type="text/x-kendo-template" id="myTemplate">
            <li>#: subPhase #</li>
    </script>
    <script type="text/x-kendo-template" id="template">
        <div id="details-container" class="row" data-role="view" data-reload="true">
            <div id="contractListLeft" class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <ul id="sortable-listC" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                    //looping list data in here
                </ul>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                    <button class="btn" onclick="addGroup()">Add</button>
                </div>
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                &nbsp;
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center" style="align:center;">
                <button class="btn" onclick="removeGroup()">Remove</button>
            </div>
            </div>
            <div id="contractListRight"  class="contractList col-xs-12 col-sm-12 col-md-3 col-lg-4">
                <ul id="sortable-listD" style="min-height: 110px; margin: 0; padding: 0;" data-role="sortable">
                    //looping list data added when button "addGroup" clicked 
                </ul>
            </div>
        </div>
        <div class="row">
            <div class="col-xs-10 col-md-10 col-sm-10 col-lg-10">&nbsp;</div>
            <div class="col-xs-1 col-md-1 col-sm-1 col-lg-1">
                <a class="k-window-action k-link" href="\\#"><span class="">Close</span></a>
            </div>
        </div>   
    </script>