UP下,正准备学XML这方面的。

解决方案 »

  1.   

    try
    ----------------
    sl.onchange = funany;
      

  2.   

    sl.attachEvent("onchange",funany);
    这个绑定事件你可以等xml和table绑定完在搜索所有的select进行绑定或者设置你的htc
    <PUBLIC:DEFAULTS viewLinkContent/>看看
      

  3.   

    非常感谢关注。sl.onchange = funany;
    -〉和attachEvent结果一样。sl.attachEvent("onchange",funany);
    这个绑定事件你可以等xml和table绑定完在搜索所有的select进行绑定
    -〉方案可能可行,但是太复杂,搜索table中的所有控件,根据标记去一个一个地做。添加新行要再来一遍。而且不能通过控件的ID去控制,依赖于另外的标记,想想实在可怕,我没有去测试。(另外我曾经在绑定后设置其中一个input的onclick,也没有响应)或者设置你的htc
    <PUBLIC:DEFAULTS viewLinkContent/>看看
    -〉结果和("<SELECT onchange="funany();"....>")一样郁闷平方次。
      

  4.   

    最后数据绑定机制,自己重新实现,这样就没有上面的问题,本身提供的数据棒定机制有点不太适用,而且速度很慢htc(xml+xsl实现)
      

  5.   

    不知道这样绑定的事件有没有,比如:beforefieldupdate,beforerowupdate,
    如果没有,真得自己实现了,不过感觉太复杂了。纯脚本实现真难。
      

  6.   

    恐怕是因为脚本设置value并不会引发onchange事件引起的问题
    你试下如下修改:sl.attachEvent("onchange",funany);
    后面增加一行:
    sl.attachEvent("onpropertychange",function(e){if(e.propertyName == "value")e.srcElement.fireEvent("onchange");});
      

  7.   

    刚刚了解多了一点东西,最好不要像我上面说那样改,那样在用户点击修改时会多引发两次onchange事件。正确的做法应该这样:
    定义一函数,用于设置新值同时引发onchange事件,如下:
    function select$value_set(slt, value)
    {
      if( slt.value != value )
      {
        slt.value = value;
        slt.fireEvent("onchange");
      }
    }
    然后将你的代码中涉及到对select元素的value属性赋值的地方,换成调用该函数。
    这样就能保证触发onchange事件且不会引发“意料外”的那一次。
      

  8.   

    数据岛xml对象有几个事件,例如onrowdelete等,事件不是太多,
      

  9.   

    beforefieldupdate,beforerowupdate这个你自己实现了
      

  10.   

    问题依旧存在,我最后
    用<PUBLIC METHOD...>,解决是解决了,就是不舒服。
    <PUBLIC METHOD funany />
    ...
    funany(){..}
    ...
    ...createElement("<input onclick='"element.id+").funany();'/>");感觉事件触发后,IE是在HTML页中寻找funany,而不是在我自定义的htc控件中。(在用数据岛绑定的Table中的TD中动态添加的HTML元素的事件)