EasyUI Forum
May 18, 2024, 06:32:12 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Uncaught TypeError: Cannot read property 'panel' of undefined  (Read 21908 times)
frankgao
Jr. Member
**
Posts: 53


View Profile Email
« on: February 02, 2016, 11:09:42 PM »


Code:
return _5d2(jq[0]);
},getPanel:function(jq){
return $.data(jq[0],"datagrid").panel;
},getPager:function(jq){
[b]return $.data(jq[0],"datagrid").panel.children("div.datagrid-pager");[/b]
},getColumnFields:function(jq,_760){
return _627(jq[0],_760);
},getColumnOption:function(jq,_761){
return _628(jq[0],_761);
},resize:function(jq,_762){
return jq.each(function(){
_5e1(this,_762);
Logged
stworthy
Administrator
Hero Member
*****
Posts: 3581


View Profile Email
« Reply #1 on: February 03, 2016, 12:54:04 AM »

Please show an example to demonstrate your issue.
Logged
frankgao
Jr. Member
**
Posts: 53


View Profile Email
« Reply #2 on: February 17, 2016, 12:30:54 AM »

Please show an example to demonstrate your issue.


My first page have one "easyui-window",this window's href is department.html

Code:
<div id="dpgwindows" class="easyui-window" closed="true" title="" style="width:0px;height:0px"></div>

department.html

Code:
  <div id="dpgtb" style="padding:0px;height:auto">
    <div class="pagepanelheader">
        <a id="btnOk" href="#" class="easyui-linkbutton" iconcls="icon-ok" plain="true" onclick="doOkPage('0')">OK</a>
        <a id="btnClear" href="#" class="easyui-linkbutton" iconcls="icon-undo" plain="true" onclick="doOkPage('1')">Clear</a>
    </div>
    <div>
        Code: <input id="dpgbtnum" class="easyui-textbox pagetextbox" type="text">
        Name: <input id="dpgbtnname" class="easyui-textbox pagetextbox" type="text">
        Status:<input id="dpgcomstatus1" class="easyui-combobox" disabled="disabled" editable="false" style="width:70px;"
       name="dpgcomstatus1" data-options="valueField:'value',textField:'text',data:[{'value':'-1','text':'All'},{'value':'0','text':'Normal',selected:true},{'value':'1','text':'Expire'}]" />
        <a id="btnLoad" href="#" class="easyui-linkbutton" iconcls="icon-search" onclick="doSearchPage()">Query</a>
    </div>
</div>

<div id="dpggridmaster"></div>

<script>
    $(function () {
        $('#dpggridmaster').datagrid({
            title: '',
            url: '/Box/Selection/DepartmentGroupReload',
            method: 'get',
            dataType: "json",
            fit: true,
            toolbar: '#dpgtb',
            fitColumns: true,
            rownumbers: true,
            striped: true,
            autoRowHeight: false,
            pageSize: 20,
            pagination: true,
            remoteSort: false,
            columns: [[
                { field: 'gpid', hidden: true, title: 'ID' },
                { field: 'gpnumber', title: 'Code', width: '110px', sortable: true },
                { field: 'gpname', title: 'Name', width: '140px', sortable: true },
                {
                    field: 'deleted', title: 'Status', width: '50px',
                    formatter: function (value, row, index) {
                        if (value == 'True') {
                            return '<span title="1"><font color=red>Expire</font></span>';
                        } else {
                            return '<span title="0">Normal</span>';
                        }
                    }
                }
            ]],
            queryParams: {
                formid: getUrlParam('formid'),
                typenumber: $('#dpgbtnum').val(),
                typename: $('#dpgbtnname').val(),
                funstatus: '0',
            },
            singleSelect: true,
            selectOnCheck: false,
            checkOnSelect: false,
            onLoadSuccess: function (data) {
                if (data.rows.length > 0) {
                    $('#dpggridmaster').datagrid("selectRow", 0);
                }
            },
            onDblClickRow: function (rowIndex, rowData) {
                doOkPage('0');
            }
        });
    });


    function doSearchPage() {
        $("#dpggridmaster").datagrid('load', {
            formid: getUrlParam('formid'),
            typenumber: $('#dpgbtnum').val(),
            typename: $('#dpgbtnname').val(),
            funstatus: $('#dpgcomstatus1').combobox('getValue'),
        });
    }


    function doOkPage(flag) {
        var pmodel = getUrlParam('pmodel');
        var row = $('#dpggridmaster').datagrid('getSelected');
        if (row) {
            var id = row.gpid;
            var code = row.gpnumber;
            var name = row.gpname
            if (flag == '1')
            {
                id = '0';
                code = '';
                name='';
            }

            $(window.dlgDepartmentGroupInfor(id,code, name));
        }
        else {
            if (flag=='0') {
                alterErrorInfo('Empty Query!');
                return false;
            }

        }
    }

</script>



Logged
stworthy
Administrator
Hero Member
*****
Posts: 3581


View Profile Email
« Reply #3 on: February 17, 2016, 01:16:25 AM »

You must wait the content page to be loaded successfully before creating the datagrid '#dpggridmaster'.
Code:
<div id="dpgwindows" class="easyui-window" closed="true" title="" style="width:0px;height:0px" data-options="
href: 'department.html',
onLoad: function(){
$('#dpggridmaster').datagrid({
...
});
}
"></div>
Logged
frankgao
Jr. Member
**
Posts: 53


View Profile Email
« Reply #4 on: February 17, 2016, 01:40:24 AM »

Sorry,I modify it.but the error is still exist.
First page have a function "dlgDepartment",add the onLoad method.
and department.html

Code:
function dlgDepartment() {
    var $win;
    $win = $("#dpgwindows").window({
        width: 700,
        height: 500,
        modal: true,
        href: '/Box/Selection/Department?formid=' + getUrlParam('formid') + '',
        title: 'Choose',
        collapsible: false,
        maximizable: true,
        minimizable: false,
        onResize: function () {
            $(this).window('center');
        },
        onLoad: function () {
            loadData();
        }
    });
    $win.window('open');
}

department.html

Code:
function loadData(){
    $('#dpggridmaster').datagrid({
            title: '',
            url: '/Box/Selection/DepartmentGroupReload',
            method: 'get',
            dataType: "json",
            fit: true,
            toolbar: '#dpgtb',
            fitColumns: true,
            rownumbers: true,
            striped: true,
            autoRowHeight: false,
            pageSize: 20,
            pagination: true,
            remoteSort: false,
            columns: [[
                { field: 'gpid', hidden: true, title: 'ID' },
                { field: 'gpnumber', title: 'Code', width: '110px', sortable: true },
                { field: 'gpname', title: 'Name', width: '140px', sortable: true },
                {
                    field: 'deleted', title: 'Status', width: '50px',
                    formatter: function (value, row, index) {
                        if (value == 'True') {
                            return '<span title="1"><font color=red>Expire</font></span>';
                        } else {
                            return '<span title="0">Normal</span>';
                        }
                    }
                }
            ]],
            queryParams: {
                formid: getUrlParam('formid'),
                typenumber: $('#dpgbtnum').val(),
                typename: $('#dpgbtnname').val(),
                funstatus: '0',
            },
            singleSelect: true,
            selectOnCheck: false,
            checkOnSelect: false,
            onLoadSuccess: function (data) {
                if (data.rows.length > 0) {
                    $('#dpggridmaster').datagrid("selectRow", 0);
                }
            },
            onDblClickRow: function (rowIndex, rowData) {
                doOkPage('0');
            }
        });
}
Logged
frankgao
Jr. Member
**
Posts: 53


View Profile Email
« Reply #5 on: February 17, 2016, 02:06:43 AM »

You must wait the content page to be loaded successfully before creating the datagrid '#dpggridmaster'.
Code:
<div id="dpgwindows" class="easyui-window" closed="true" title="" style="width:0px;height:0px" data-options="
href: 'department.html',
onLoad: function(){
$('#dpggridmaster').datagrid({
...
});
}
"></div>


I add alert(),this show "11" message twice.

Code:
onLoad: function () {
            alert('11');
            //loadData();
        }
Logged
stworthy
Administrator
Hero Member
*****
Posts: 3581


View Profile Email
« Reply #6 on: February 17, 2016, 02:34:00 AM »

You have created window by javascript. So please remove 'class="easyui-window"' from your <div> element.
Logged
frankgao
Jr. Member
**
Posts: 53


View Profile Email
« Reply #7 on: February 17, 2016, 05:32:25 AM »

You have created window by javascript. So please remove 'class="easyui-window"' from your <div> element.

Thanks,I know the reason,because in my first page I bind the click function to the easyui-textbox twice.
So when click the textbox the window onLoad twice.

Code:
    function bindOpenDlg() {
        $("input", $("#SupervisorName").next("span")).click(function () {
            dlgDepartment();
        });
    }
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!