FineUI 官方论坛

标题: 问一个isDirty()的问题 [打印本页]

作者: Kyle_Lee    时间: 2020-3-13 09:33
标题: 问一个isDirty()的问题
doPostBack在后台代码中设置了某个复选框为“选中”状态(实际中为可变量)


  1. UIHelper.CheckBox("ckb_UsingEnable").Checked(true);
复制代码



前端代码中检测此复选框的变化:
  1. <f:CheckBox ID="ckb_UsingEnable" Label="启用" >
  2.       <Listeners>
  3.           <f:Listener Event="change" Handler="onUsingEnableChange" />
  4.       </Listeners>
  5. </f:CheckBox>
复制代码
  1. function onUsingEnableChange() {
  2.     if (this.isDirty()) {
  3.         F.alert('Has Change');
  4.     }
  5.     else {
  6.         F.alert('No Change');
  7.     }
  8. }
复制代码
从”选中“变成”未选中“,会显示”No Change“,
然后从”未选中“变回”选中“,会显示”Has Change“。


  1. UIHelper.CheckBox("ckb_UsingEnable").Checked(true);
  2. UIHelper.GroupPanel("Group_Enables").ClearDirty();
复制代码
再然后,我尝试对复选框的父容器进行ClearDirty(),结果还是一样。


因此想问问,是我用法不对?还是isDirty()的问题?

作者: sanshi    时间: 2020-3-15 12:41
可能是注册顺序的问题,可以尝试在页面定义一个JS函数:
  1. function clientJS() {
  2.         F.ui.ckb_UsingEnable.setValue(true);
  3.         F.ui.Group_Enables.clearDirty();
  4. }
复制代码


然后在后台通过 PageContext.RegisterStartupScript 来调用试下。




欢迎光临 FineUI 官方论坛 (https://www.fineui.com/BBS/) Powered by Discuz! X3.4