Closing a kendoui window with custom Close button within the window

前端 未结 4 1517
攒了一身酷
攒了一身酷 2021-02-07 00:02

I\'m using Kendo UI\'s window component, which is similar to any modal dialog.

I have a close button in it, how do I close the window upon clicking that button (instead

相关标签:
4条回答
  • 2021-02-07 00:24

    Basically you already know how to close the window - you need to do it with the close method of its API.

    $("#window").data("kendoWindow").close();
    

    But in order to attach the handler to the button inside of the view you need to wait until the content is loaded - you need to use the refresh event.

    e.g.

    $('#theWindowId').data().kendoWindow.bind('refresh',function(e){
        var win = this;
        $('#close').click(function(){
             win.close();
        })
    })
    
    0 讨论(0)
  • 2021-02-07 00:31

    there is an event in kendo ui for this it should be something like this

     $("#idofyourbutton").click(function () {
         $("#window").data("kendoWindow").close();
        });
    
    0 讨论(0)
  • 2021-02-07 00:34

    In case of working with content loaded by ajax, the Petur Subev's answer is perfect! I´d like to give an example working with templates, that is more simple (whereas not all requests shoulb be by ajax). Consider the template below:

    <script id="Template_Example1" type="text/kendo-tmpl">
    <div class="i-contentWindow">
        <div>
            <a id="btn1" href="\#"><span class="k-icon k-i-cancel"></span>Button 1</a>
        </div>
    </div>
    

    And now, let´s load the template e call window close method:

    function ExampleFn1(dataItem) {
        //create the template
        var template = kendo.template($("#Template_Example1").html());
    
        //create a kendo window to load content
        var kWindow = openKendoWindow({
            title: "Window Tests",
            iframe: false,
            resizable: false
        }).content(template(dataItem));
    
        // call window close from button inside template
        $("#btn1").click(function (e) {
            e.preventDefault();
            alert("btn1 on click!");
        });
    
        kWindow.open();
    }
    
    0 讨论(0)
  • 2021-02-07 00:35

    In JavaScript - HTML window is an object that represents an open window in a browser. Try defining your window as something else.

    $(document).ready(function () {
        var wnd = $("#window").data("kendoWindow");
    
        $("#open").click(function (e) {
            wnd.center();
            wnd.open();
        });
    
        $("#close").click(function(e) {
            wnd.close();
        });
    });
    
    0 讨论(0)
提交回复
热议问题