2015-06-19 2 views
0

У меня есть нижеследующий код для Kendo Grid. Я использую шесть выпадающих и одно поле ввода текстового поля. Он отлично подходит для добавления, редактирования & операций удаления, а также отражения записей в базе данных, но единственная проблема заключается в том, что после операции добавления и редактирования значение поля раскрывающегося списка не отображает сетку, а значения находятся в базе данных.Kendo Dropdown Значение id не обновляет GRID после ADD/EDIT

$("#riskassessment").kendoGrid({ 
 
     dataSource: { 
 
      transport: { 
 
       read: { url: serverUrl + "/RiskAssessment/GetRiskAssessment", type: "GET", dataType: 'json', cache: false }, 
 
       update: { 
 
        url: serverUrl + "/RiskAssessment/PostRiskAssessmentEdit", 
 
        type: "POST"      
 
       }, 
 
       create: { 
 
        url: serverUrl + "/RiskAssessment/PostRiskAssessmentAdd", 
 
        type: "POST"     
 
       }, 
 
       destroy: { url: serverUrl + "/RiskAssessment/DeleteRiskAssessment", type: "POST", cache: false }    
 
      }, 
 
      schema: { 
 
       model: { 
 
        id: "RiskAssessmentConfigId", 
 
        fields: { 
 
         RiskAssessmentConfigId: { editable: false, nullable: false }, 
 
         ComponentId: { editable: true, nullable: false, validation: { required: true } }, 
 
         XCHKZEROId: { editable: true, nullable: false, validation: { required: true } }, 
 
         YieldId: { editable: true, nullable: false, validation: { required: true } }, 
 
         CVALBEId: { editable: true, nullable: false, validation: { required: true } }, 
 
         CVALFQAID: { editable: true, nullable: false, validation: { required: true } }, 
 
         RiskId: { editable: true, nullable: false, validation: { required: true } } 
 
        } 
 
       } 
 
      }, 
 
      sort: [{ field: "ComponentId", dir: "asc" }], 
 
      pageSize: 5 
 
     }, 
 
     columns: [ 
 
       { field: "ComponentId", title: "Component", editor: ComponentDropDownEditor, width: "150px", template: "#= GetGeneralDDLabelName(ComponentId) #" }, 
 
       { field: "YieldId", title: "Yield", editor: YieldDownEditor, width: "150px", template: "#= GetGeneralDDLabelName(YieldId) #" }, 
 
       { field: "CVALBEId", title: "CVAL BE", editor: CVALBEDropDownEditor, width: "150px", template: "#= GetGeneralDDLabelName(CVALBEId) #" }, 
 
       { field: "CVALFQAID", title: "CVAL FQA", editor: CVALFQADropDownEditor, width: "150px", template: "#= GetGeneralDDLabelName(CVALFQAID) #" }, 
 
       { field: "XCHKZEROId", title: "XCHKZERO", editor: XCHKZERODropDownEditor, width: "150px", template: "#= GetGeneralDDLabelName(XCHKZEROId) #" }, 
 
       { field: "RiskId", title: "Risk", editor: RiskDropDownEditor, width: "150px", template: "#= GetRiskDDLabelName(RiskId) #" }, 
 
       { field: "Remarks", title: "Remarks" }, 
 
       { command: ["edit", "destroy"], title: " ", width: "180px" }], 
 
     editable: "popup", 
 
     pageable: true, 
 
     sortable: true, 
 
     toolbar: ["create"], 
 
     change: onChange, 
 
     RequestEnd: onGridDataSourceRequestEnd 
 
    });

после сохранения или отредактированной записи дисплея, как показано ниже.

enter image description here

Любой, пожалуйста, помогите мне решить эту проблему.

Я также добавил событие RequestEnd, чтобы обновить сетку, но событие не запускается.

function onGridDataSourceRequestEnd(e) { 
    alert(e.type); 
    if (e.type == "update") { 
     $("#riskassessment").data("kendoGrid").dataSource.read(); 
    } 
} 

ответ

0

Внутри колонки полей вместо того

template: "#= GetGeneralDDLabelName(YieldId) #" 

попытаться дать

template: "#=YieldId#" 

и подходит к синтаксической ошибке RequestEnd его

requestEnd:function(e) 
+0

Я не могу прокомментировать Ваш вопрос Thats уг при условии ответа недавно я столкнулись с этими проблемами, я могу изо всех сил помочь вам – Praveenkumar

0

Я также сталкиваются с той же проблемой ,

После было мое понимание проблемы и решения:

В основном выпадающий редактор это функция, которая строит выпадающий из внешнего источника данных. Таким образом, он работает нормально. Однако для шаблона для работы в формате (field.property) сервер должен вернуть значение как класс для этого поля, а не простой текст.

Таким образом, вы можете вернуться следующий формат с вашего сервера на стороне сервиса:

{"ComponentId":{"id":"YOURID","name":"YORNAME"}} 

Furthur вы можете использовать объект как

template: "#= ComponentId.name #" //or "#= GetGeneralDDLabelName(ComponentId.name) #" according your code 
Смежные вопросы