我有一个页面,当用户单击某些报告工具的链接时,它首先要求他们输入一些报告参数。我根据链接的 id 使用 AJAX 以表单形式获取参数对话框。每个对话框上都有一些 dojo 控件,因此我需要在对话框出现时解析它们,因为它最初不是页面的一部分。
第一个对话框在调用时工作正常,但后续对对话框的调用无法解析 dojo 控件。
Example:
showParametersDialog : function(doc) {
var content = doc.firstChild.firstChild.data;
var container = document.createElement('div');
container.id = 'dialog';
container.innerHTML = content;
container.style.background = 'transparent';
container.style.position = 'absolute';
container.style.top = (document.body.clientHeight / 2) - 124 + "px";
container.style.left = (document.body.clientWidth / 2) - 133 + "px";
container.style.display = 'block';
document.body.appendChild(container);
// set up date fields
var date_from = dojo.byId('date_from');
var date_to = dojo.byId('date_to');
try {
date_from.value = dojo.date.locale.format(new Date(), {selector: 'date'});
date_to.value = dojo.date.locale.format(new Date(), {selector: 'date'});
} catch(e) {
var now = new Date();
date_from.value = String(now.getMonth() + "/" + now.getDate() + "/" + now.getFullYear());
date_to.value = String(now.getMonth() + "/" + now.getDate() + "/" + now.getFullYear());
}
dojo.parser.parse();
}
所有对话框都有公共日期字段。
因此,当我第一次调用此对话框并调用 dojo.parser.parse() 时,它会解析对话框上的控件,但只是第一次......之后,没有 dojo。
有什么想法吗?
谢谢,
保罗.
您可以使用
dojo.parser.instantiate([dojo.byId("myDiv")]);
而不是 dojo.parser.parse();
对所有未解析的对象使用它。
您可以在这里找到更多相关信息:
http://livedocs.dojotoolkit.org/dojo/parser http://livedocs.dojotoolkit.org/dojo/parser
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)