原来没太注意这个属性,因为以前不是使用XPObject而是使用XPBaseObject. 删除的记录就真正删掉了。所以剩下一些自己清理也没关系。而且那时对象就几种。现在删除的记录都只是打上标记(太有用了。。。)这种联动的打删除标记就很重要。否则配置对象很多类的时候,删了父亲还要考虑删儿子,删了儿子还要考虑孙子。 不但累人,而且心里没底。
分类: IT
devExpress中CriteriaOperator.Parse()
GroupOperator.And(new BinaryOperator(“SubCompany”, subCompany), new BinaryOperator(“Name”, actionName))
上述的CriteriaOperator,如果写成CriteriaOperator.Parse(“SubCompany=” + subCompany + ” AND Name='” + actionName + “‘”)就不行了。本来还以为是它的局限性,只能parse一个,不能parse多个criteria.后来一想,subCompany 是对象,直接.ToString()出来后拼成的sql语句当然不行,pase()方法需要的是sql string,这和BinaryOperator的重载会接受operand 2是对象是不一样的。很小的细节问题。在编程的时候,对变量到底是什么类型,函数接受的参数是什么类型,如何转换的,一定要心中有数啊。
雕虫小技
http://jsjlcl.bokee.com/viewdiary.13907582.html
这篇文章中提到了2.0里的eval和以前的dataBinder+container的方法的差异。
今天编程中就用到了。而且我发现光用2.0的eval就只能获取本datarow的值,准确地说只是row中的field,要获取一些上层的东西,container还是不可少,而且用了container有一个好处,编译的时候总能通过(因为是一个object)—再说得明确一点,由于编译总能通过,就可以进入debug,有个debug的watch窗口,该用什么属性就很方便地知道了。比如今天用的<%#DataBinder.Eval(Container, “VisibleIndex”) %>,debug的时候发现是GridViewPreviewRowTemplateContainer对象,而且属性都清楚,既可以用watch看,也可以查help.一下就能知道VisibleIndex这个属性的正确写法。实在是一个有用小技巧啊。