|
基于css样式绑定的样式驱动式AJAX程序开发(.net实现)(2) 也许你会说不是有用户控件吗,很抱歉,用户控件跟前台严重耦合,你将它拿到一个项目中也许派不上一点用场。
那WEB控件库呢?虽然能重用,跟用户控件比不耦合了,但是局限性太强,复杂度高,我觉得叫一个普通程序员写一个带模 板项的DataGird能排序的,可以删除、修改、上移下移]可以查看详细信息的控件出来是一件很费事的事。
又有人说了,真笨,我直接拖一个DATAGRID然后再这个基础上加按纽,模板列,排序,详细连接好不好啊,还用特意做个 控件吗?有很抱歉的告诉你,如果是1000个DATAGIRD,每一个都有这些功能的一种或几种,那么你后台够写的了,即使你抽象 出一层、封装出一个专门的DataGirdBuilder类,也够复杂的,各种重载方法,晕。
那么使用样式绑定式的开发就简单了,给DataGird个排序的样式(比如CssClass=sort),后台几句代码,或者干脆不写( 你的准备比较充足),就可以了,再加个列变为删除按钮(比如其中的一个列里ItemStyle CssClass="delbtn"),就可以了, 别的DataGrid不需要排序,那么样式去掉。而后页面类里干干静静。样式绑定后变化的元素传值到统一的业务对象进行处理, 一切都很规矩。
3 实现 利用我之前做过的AJAX库,再结合Javascript脚本构建一个这样的库不成问题。自然,跟做烧饭做菜一样,这里选料非常的 重要,这里我要选用来自Dean Edwards和Tino Zijdel的事件操作脚本库(common.js)和Neil Cro~~~~y制作的样式基本操作库( css.js)来做好我们这道美味,噢,当然,还有大名鼎鼎的prototype.js库. 好了,,前台的制作工序基本完成。 然后就是利用我前一阵子做的AJAX库了。 假设是删除,QueryString: command=delrow&JS生成的参数…… 则后台调用AjaxDelRow.cs
protected override void DoAjax() ...{ // 搜集参数 string parlist = request.Params["pars"]; string[] paritem = parlist.Split(''); Hashtable hash = new Hashtable(paritem.Length); for(int i=0;i<paritem.Length-1;i++) ...{ string[] paritempart = paritem[i].Split('^'); hash.Add(paritempart[0],paritempart[1]); }
bool isDeled = false; string table = request.Params["table"]; // 判断来源 if(table!=null) ...{ if(table.Equals("dgBigclassmanage")) //DATAGRID的ID号
|