FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 1756|回复: 1

问一个isDirty()的问题

[复制链接]
发表于 2020-3-13 09:33:56 | 显示全部楼层 |阅读模式
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()的问题?
发表于 2020-3-15 12:41:53 | 显示全部楼层
可能是注册顺序的问题,可以尝试在页面定义一个JS函数:
  1. function clientJS() {
  2.         F.ui.ckb_UsingEnable.setValue(true);
  3.         F.ui.Group_Enables.clearDirty();
  4. }
复制代码


然后在后台通过 PageContext.RegisterStartupScript 来调用试下。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-3-29 18:26 , Processed in 0.044548 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表