XML节点的值或属性改变时能触发事件吗? (不是.NET中) 查不到相关资料,但InfoPath中是实现了这个效果的。请高手相助!

ChinaPcFan 2006-01-19 05:18:49
我希望在IE6中现实这样一个功能:在页面中有一个XML Document对象,当某个节点的值或属性改变时自动执行一些其它的操作。这个值或属性

可能不是由我的程序来修改,而是由别人通过脚本直接操作这个XML Document对象来修改,所以不能在设置节点值的代码中一起执行那些操作

,希望通过事件捕获来完成这个功能。
查了XMLSDK 5.0,只有XMLDOMDocument对象有三个事件(都与这个功能无关),XMLDOMNode、XMLDOMElement都没有事件,在google和百度上也搜

索不到相关的文章,但是,InfoPath内部却现实了这样的效果!

InfoPath的具体操作如下(必须是启用了SP1):

设计表单->新建空白表单
在任务窗格的控件列表中拖入一个“文本框”控件(自动创建数据源"field1"),设置这个控件的“规则”,“条件”为“field1 等于 "12345"”,“操作”为“显示对话框消息:1111”
然后再拖入一个“按钮”控件,在按钮的脚本代码中写:
function CTRL2_5::OnClick(eventObj)
{
var xmlDoc = XDocument.DOM;
var oNode = xmlDoc.selectSingleNode('//my:field1');
if (oNode == null) return;
oNode.text = '12345';
}
也就是用脚本代码来修改XML节点field1的值,field1的值变成"12345"后,就会自动弹出对话框。


希望能解答这个问题或对Infopath有研究的朋友能与我联系

MSN: kegu_mx@hotmail.com
QQ: 13801732 验证信息注明CSDN

...全文
153 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hax 2006-01-26
  • 打赏
  • 举报
回复
dom有专门的event模块。但是ie不支持,嘿嘿。

当然m$内部的产品肯定有等价的功能,呵呵。
ChinaPcFan 2006-01-23
  • 打赏
  • 举报
回复
请高手帮忙呀!自己顶一个
ChinaPcFan 2006-01-20
  • 打赏
  • 举报
回复
谢谢ssm1226(雨中人@忙晕了) 的回复,在其实没有其它办法的情况下我会考虑用js来实现的。

期待有不同的解决方案。

我自己在考虑用XML数据岛绑定到input控件,再通过input控件的事件来获知XML数据被修改了,但这样的问题是XML的结构就必须是比较符合XML数据岛格式的了,就不太灵活了。在网上找了很久,也查了很多资料,都没看到关于绑定到XML数据岛时datafld属性的详细说明,只知道是表示字段名的XML节点名或XML属性名称、可以是$Text,不知道有没有更灵活的方式(如比XPATH来指定任意一个节点),希望知道这方面问题的朋友能帮助解答一下!谢谢!
ssm1226 2006-01-20
  • 打赏
  • 举报
回复
自己写代码实现吧

可以参考下ajaxxslt实现的dom.js ,在他的代码上实现此事件,应该不是很难

8,907

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧