繁体   English   中英

kendo ui-网格中未定义数据列模板功能

[英]kendo ui - data-column template function is undefined in grid

我有2个文件: customer.jsadd-customer-template.html 如下所示,在add-customer-template.html上有一个网格。

<div id="leadsGrid"  data-role="grid" 
                                                         data-bind="source: leadsDS"                                                     
                                                         date-scrollable="true"
                                                         data-editable="popup"
                                                         data-toolbar="['create']"
                                                         data-columns='[                                                                
                                                            {   
                                                                field: "salesPerson", title: "Sales Person", 
                                                                editor: "salesPersonDropDownEditor", 
                                                                template: "#= getSalesPersonName(salesPerson)#"
                                                            }, 
                                                            {field: "date", title: "Date", format: "{0:MM-dd-yyyy}"}, 
                                                            {field: "expectedDate", title: "Expected Date", format: "{0:MM-dd-yyyy}"}, 
                                                            {field: "expectedIncome", title: "Expected Income", format: "{0:c}"},
                                                            {field: "details", title: "Details"},
                                                            {field: "description", title: "Description"},
                                                            {command: ["edit", "destroy"], title: "&nbsp;"}]'>
                                    </div>

customer.js具有2个函数salesPersonDropDownEditorgetSalesPersonName ,如下所示。

var salesPersonDropDownEditor = function(container, options) {
              $('<input data-bind="value:' + options.field + '"/>')
                .appendTo(container)
                .kendoDropDownList({      
                  dataTextField: "salesPersonName",
                  dataValueField: "salesPersonID",
                  dataSource: new kendo.data.DataSource({
                            transport: {
                                read: {
                                    url: "../public/js/salesPersons.json",
                                    dataType: "json"
                                }
                            }
                        }) 
                });
            }

    var getSalesPersonName= function(salesPersonID) {
              for (var idx = 0, length = customerAdd.salesPersonData.length; idx < length; idx++) {
                  if (customerAdd.salesPersonData[idx].CategoryID === customerAdd.salesPersonData.salesPersonID) {
                    return customerAdd.salesPersonData[idx].salesPersonName;
                  }
              }
            }

我想在列sales person上显示下拉列表,但出现错误salesPersonDropDownEditor未定义。 当我在salesPersonDropDownEditor周围添加“”时,它不会抛出错误。 现在抛出错误,未定义getSalesPersonName

从网格编辑时,如何调用这些函数并显示下拉列表?

这是使用声明式初始化(​​即使用data-属性配置网格)的负面影响之一。 您必须在customer.js文件中配置网格,使其与您的函数处于同一范围。

附加客户template.html

<div id="leadsGrid"></div>

customer.js

$('#leadsGrid').kendoGrid({
  dataSource: leadsDS,
  scrollable: true,
  editable: 'popup',
  toolbar: ['create'],
  columns: [
    {   
      field: 'salesPerson', 
      title: 'Sales Person', 
      editor: salesPersonDropDownEditor, 
      template: getSalesPersonName
    },
    // shortened for brevity
  ]
});

var salesPersonDropDownEditor = function(container, options) {
  // hidden for brevity
};

var getSalesPersonName = function() {
  // hidden for brevity
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM