这甚至是一个不容易阐述清楚的问题,由于对JS不熟悉,考虑了很久,还是没有答案。
在一个类似DATAGRIDVIEW的容器的模板里面,我放了一些三方控件,比如说一个ASPxCheckBox控件和一个ASPxButton控件,于是在生成的页面上,会生成很多行这样的控件集,我需要的效果是这样:如果我点击一下其中一个ASPxButton控件,那么对应行的ASPxCheckBox会被打勾或清空。
当我点击ASPxButton控件时,我可能得到对应行的ASPxCheckBox控件的UniqueID的字符串,并根据这个字符串使用 document.getElementById(UniqueID字符串)找到这个组件,但问题在这里,实际上这个对象类型应该是 ASPxClientCheckBox,但得到的组件类型却是 [Object, HTMLTableElement]之类的东西,这样就造成了类ASPxClientCheckBox中的方法和属性在找到的组件中根本无法使用的问题。如果根据ASPxCheckBox控件的页面事件里面的对象来的话,是完全可以调用到类ASPxClientCheckBox中的方法和属性的。现在的问题就是如何使用JS获类型为ASPxClientCheckBox的ASPxCheckBox控件的对象,请高手指点。
以下是前端代码片断:
</tr>
</table><script id="dxss_420166139" type="text/javascript">
<!--
aspxAddDisabledItems('ASPxPageControl1_ASPxDataView1_IT0_ASPxCheckBox1',[[['dxeDisabled_DevEx'],[''],['']]]);var dxo = new ASPxClientCheckBox('ASPxPageControl1_ASPxDataView1_IT0_ASPxCheckBox1');
window['chkone'] = dxo;
dxo.uniqueID = 'ASPxPageControl1$ASPxDataView1$IT0$ASPxCheckBox1';
dxo.CheckedChanged.AddHandler(chkcc);
dxo.imageProperties = {'4':['dxWeb_edtCheckBoxChecked_DevEx','dxWeb_edtCheckBoxUnchecked_DevEx'],'8':['dxWeb_edtCheckBoxCheckedDisabled_DevEx','dxWeb_edtCheckBoxUncheckedDisabled_DevEx']};
dxo.icbFocusedStyle = ['dxICBFocused_DevEx',''];
dxo.InlineInitialize();//-->
</script>
                                        </div>
就是这个类型ASPxClientCheckBox,如何用document.getElementById(UniqueID字符串)找到这个组件后转化为ASPxClientCheckBox类型。

解决方案 »

  1.   

    ASPxClientCheckBox 的源代码发出来。
      

  2.   

    window['chkone'] = dxo;
    这里不是定义到了 chkone上面吗?直接用这个变量就可以访问了?
      

  3.   

    var dxo = new ASPxClientCheckBox('ASPxPageControl1_ASPxDataView1_IT7_ASPxCheckBox1');
    window['chkone'] = dxo;
    dxo.uniqueID = 'ASPxPageControl1$ASPxDataView1$IT7$ASPxCheckBox1';
    dxo.CheckedChanged.AddHandler(chkcc);
    dxo.imageProperties = {'4':['dxWeb_edtCheckBoxChecked_DevEx','dxWeb_edtCheckBoxUnchecked_DevEx'],'8':['dxWeb_edtCheckBoxCheckedDisabled_DevEx','dxWeb_edtCheckBoxUncheckedDisabled_DevEx']};
    dxo.icbFocusedStyle = ['dxICBFocused_DevEx',''];
    dxo.InlineInitialize();var dxo = new ASPxClientCheckBox('ASPxPageControl1_ASPxDataView1_IT9_ASPxCheckBox1');
    window['chkone'] = dxo;
    dxo.uniqueID = 'ASPxPageControl1$ASPxDataView1$IT9$ASPxCheckBox1';
    dxo.CheckedChanged.AddHandler(chkcc);
    dxo.imageProperties = {'4':['dxWeb_edtCheckBoxChecked_DevEx','dxWeb_edtCheckBoxUnchecked_DevEx'],'8':['dxWeb_edtCheckBoxCheckedDisabled_DevEx','dxWeb_edtCheckBoxUncheckedDisabled_DevEx']};
    dxo.icbFocusedStyle = ['dxICBFocused_DevEx',''];
    dxo.InlineInitialize();var dxo = new ASPxClientCheckBox('ASPxPageControl1_ASPxDataView1_IT10_ASPxCheckBox1');
    window['chkone'] = dxo;
    dxo.uniqueID = 'ASPxPageControl1$ASPxDataView1$IT10$ASPxCheckBox1';
    dxo.CheckedChanged.AddHandler(chkcc);
    dxo.imageProperties = {'4':['dxWeb_edtCheckBoxChecked_DevEx','dxWeb_edtCheckBoxUnchecked_DevEx'],'8':['dxWeb_edtCheckBoxCheckedDisabled_DevEx','dxWeb_edtCheckBoxUncheckedDisabled_DevEx']};
    dxo.icbFocusedStyle = ['dxICBFocused_DevEx',''];
    dxo.InlineInitialize();
      

  4.   

    这是通过查看源文件里面的部分代码,每个控件创建时都被加入到了window['chkone']中,最后我跟踪代码时只能得到最后一个控件的情况,前面的列表不知道放在哪里去了,另外,这个控件是devexpress控件,目前我还没有源代码