12月19日 星期一
12月20日 星期二
1. 动态绑定查询窗口,解决一系列在绑定回访输出过程中的问题;
2. 经过各种尝试最终选用.Net AJAX 访问WebServices,再用客户端回调函数绑定下拉列表项;
3. 数据Postback时,由于使用动态绑定下拉列表,服务端无法还原下拉列表项目,因此更加无法获取选中项目;
4. 针对此问题,使用Html基本元素Form表单获取,在服务端调用时直接用Request[id]来获取Form回传值;
5. 查询数据表,由于使用动态绑定,所有会产生针对查询不同数据表的问题,实现如下:
a) 在页面增加一个隐藏字段,以实现在页面缓存目标表名字,但是并没有直接存表的名字,而且存目标表实体的名字;
b) 通过客户端脚本,在不同的按钮触发的时候,填充(a)点所述的隐藏字段,并做一些基本控制;
c) Postback时,获取实体签名,反射创建目标实体,以得到目标表和其他相关属性内容;
d) 为了在输出时,保持客户端动态绑定控件的状态,所以在服务端再次绑定一次.
(备注:所有动态绑定的内容都会在异步PostBack后丢失,原因在于客户端内容已被覆盖重写,已经并不是异步Postback前的内容了,虽然看起来的却并不相同,这点是异步操作中至关重要的,必须时刻牢记.);
e) 为实现查询条件封装,创建DataFilter类,以封装查询条件,即T-SQL查询语句Where语句内容;
f) 编写关于DataFilter封装和拆封组合代码;
g) 使用分页查询存储过程返回单页数据;
h) 因为是动态绑定,客户端的数据容器也应该是动态绑定的,经过尝试和修正,在BasePage中编写动态绑定字段方法;
i) 在页面服务端编写修改绑定字段格式的RowDataBound事件;
j) 点击选取时填充页面内容,编写GetModelDetail方法,使用递归调用填充相关内容,即基本信息表中的内容;
12月21日 星期三
1. 扩充业务层BusinessLogic和表现层BasePage关于实体属性的类型检查,尽可能的规避异常操作;
12月22日 星期四
1. 重构查询条件封装,增加查询条件组概念,拼装查询条件中使用树形递归查询条件组;
2. 再次遇到异步回访控件状态丢失问题,客户端使用JQuery绑定事件异步回访后丢失,功能失效(原因叙述在星期二第5点d项备注中).
3. 遇到返回客户端信息使用多行返回失效问题,原因在于语句被换行截断,解决办法为服务端赋值换行符时,在字符串前方增加@符号,以改变字符串编码方式;
12月23日 星期五
1. 扩充BasePage通用函数和实体操作函数;