商品信息模块篇
已经两天没有继续自己的项目进度了,从下午一点半直到现在一直在电脑前恶补落下的工作,可算是走了不少的弯路。这次把GoodsGrid.aspx及GoodDetails.aspx页面基本做完,遇见主要困难在于数据的动态绑定以及引用页面传值。其中的一些困难还是让自己感触颇深的。
一,对于页面的整体认识有了更清晰的理解,对于嵌套表格的处理方法不再感到束手无策。通过技术群交流以及自己尝试实践,现在基本上决定采用流布局+嵌套表格形式处理页面,外层父表宽度采用778像素,居中对齐,这样在800*600下为满屏,当在分辨率为1024*768下最大化窗体事自动填补空白,同时由于采用绝对大小使整个页面不至于产生变形。对于各子表所采用相对或绝对宽度可视情况而定。
二,在处理GoodsGrid.aspx窗体时,由于要用到Default.aspx中传递的商品类别编号CategoryID,利用此数值调用相应自定义类及存储过程,对应类的商品列表显示与页面中。此时对于显示商品的数据控件的选择停留在DataGrid和DataList上,经过简单的用户调查以及对几个知名度较大的商城参考,决定选用DataList,其主要目的是为了将各商品(图书)的图片(封面)在初次就显示给用户,增加购物的吸引力。但此时若数据条数过多要写分页方法会更为麻烦一点。而DataGrid的自定义显示方式则没有DataList灵活多变。此时在ItemTemplate中添加HTML的Table来定位调整,加一Image控件,在html代码视图中编辑显示绑定数据,这时的细微之处很是值得注意:若是在设计视图中使用硬回车换行,则在html中产生<p>标签,行距较大。欲保证页面格式,我们应该在HTML视图中于需要换行处添加<br>换行标签,才能产生正常行距换行形式。
三,我在处理GoodDetails.aspx页面遇到的麻烦是原来不曾想到的,一直不能将选定商品的图片正确显示出来,一种错误为:DataItem在Web.Control中不能找到,另一种为:显示结果是没有图片,并且在Image外显示出一些html标签,令我大为不解。为此可算是劳心费神了,尝试了重做页面,给参数赋固定值并结合单步调试等方法均以失败告终。后来比较GoodsGrid.aspx页,将html视图代码多次比较发现,自己一直没有克服定向思维,仍然沿用了在GoodsGrid.aspx页中的做法,将src属性绑定继续在html视图中操作而失效。经仔细分析 GoodsGrid.aspx和GoodDetails.aspx页面可知,二者均引用了来自链接的传递数值,而前者是一对多的关系,后者是一对一关系,故对于GoodDetails.aspx页面在codebehind中绑定属性才是正道,因为只有一个Image控件,而不是一项目模板形式存在,此时在GoodDetails.aspx.cs中设置: GoodImage.ImageUrl="Images/"+goodDetail.GoodImage; 保存,浏览器中查看,正确无误!!
终于做完一部分,虽然页面样式不尽如人意,但也不能强求没有美工细胞的自己了。一掂量,已经一下午加整个晚上了,效率太低!!呵呵