I want to include an active x object on a grid edit popup and it has an associated change event specified in jscript so I need to include the script for that.
$(gridID).kendoGrid({ dataSource: dataSource, navigatable: true, pageable: true, editable: { mode: "popup", template: function(data){return getPopupTemplate(data) } },etc....function getPopupTemplate(data) { var s = '<object id="ChemistryQuery" codebase="MDL.Draw.Editor.dll#-1,-1,-1,-1" height="240" width="240" classid="CLSID:FCE57399-E34B-45ce-881B-5FDFF3583307" class="drawingbox" >' + '<param name="ShowHydrogens" value="False">' + '<param name="ChimeString" id="ChimeString" value="' + data.NEW_CHEMISTRY + '">' + '</object>' + '<input type="hidden" name="NEW_CHEMISTRY" class="form-control" id="NEW_CHEMISTRY" />' + '<input type="text" name="TEXT_DESCRIPTOR" class="form-control" id="TEXT_DESCRIPTOR" />' + '<script language="jscript">' + 'function ChemistryQuery::ComStructureChanged(){ ' + 'if (ChemistryQuery.ChimeString) {' + 'NEW_CHEMISTRY.value = ChemistryQuery.ChimeString;' + '}' + '}' + '</script>'; return s;}
However, this results in an error stating the ChemistryQuery object can't be found.
I have done something similar to this on a dialog using Kendo UI for JSP and that works fine.
<kendo:dialog name="dialog" title="Enter Reaction Schema" closable="false" modal="true" close="onDrawerClose" visible="false" initOpen="initDialogFields" content='<div class="form-group"> <label for="description" class="col-md-3 control-label k-label">Description</label> <input type="text" name="description" class="reactionSchemaWidth k-input" id="description" /> <span class="required">*</span> </div> <div class="form-group"> <object id="ChemistryQuery" codebase="MDL.Draw.Editor.dll#-1,-1,-1,-1" height="240" width="240" classid="CLSID:FCE57399-E34B-45ce-881B-5FDFF3583307" class="drawingbox"> <param name="ShowHydrogens" value="False"> <param name="ChimeString" id="ChimeString"> </object> </div> <div class="form-group"> <div class="error formerror" id="dialogError"><span> </span></div> </div> <div class="form-group"> <input type="hidden" name="molstructure" id="molstructure" /> </div> <script language="jscript"> function ChemistryQuery::ComStructureChanged(){ if (ChemistryQuery.ChimeString) { molstructure.value = ChemistryQuery.ChimeString; } } </script>'> <kendo:dialog-actions> <kendo:dialog-action text="Done" primary="true" action="validateDrawForm" /> <kendo:dialog-action text="Cancel" /> </kendo:dialog-actions> </kendo:dialog>
So there must be a difference in the rendering timing of the two approaches. I've tried using the kendo.template but I couldn't get the syntax right because of the <script? tags. I've also tried changing the content in a edit handler for the grid but this loses the bindings on the other input fields.
I realise you can't work with this because you don't have my active-x control but could you please suggest a way to insert this jscript at the appropriate time?