电脑中了比较深的毒,两天才搞定,今天继续~
看完default.aspx,下面看看另外几个
前面说过,其实这个程序主要就是个相册功能,其他都没有实现,先把其他不麻烦的都扫一遍
简历(resume.aspx)和链接(links.aspx)
都只是继承了masterpage下来的页面,没有什么动态内容
值得注意的一是他们的div+css的布局写法和skin的运用
和default.aspx里面一样,文件中的”imagebutton”都是在skin中定义的,这样做skin的时候可以把图片url都改过来,这点要注意,用skin就一定得用到底~
register.aspx 注册页面,只使用了一个现成的createuserwizard控件,在开始研究成员服务之前先不谈这个
好,下面开始看相册
alumbs.aspx
photos.aspx
details.aspx
字面意思,分别是相册s,照片s(也就是浏览某一个相册),和具体的照片
先分析一下逻辑结构:
alumbs.aspx需要列出所有不同alumbid的相册,
photos.aspx列出具有同一个alumbid的照片
details.aspx应该提供photo的id,然后显示单张photo(其实不复杂)
看看代码,首先是alumbs.aspx
整个主体是一个datalist,datalist的好处是可以自动的按行列显示数据,这里用来显示alumbs正好(比repeater方便)
repeatcolumns=”2″ repeatdirection=”horizontal”
按两列list数据,水平排列,一个“数据”实际上是个表格,里面显示每个相册的小图片
绑定也很简单,用一个objectsouce绑定在select的getalumbs方法上,
根据现实要求很清楚,这需要返回alumbs的数据集合,每个数据包括alumb的id 照片张数等等,下面先看看返回的数据类型
public int albumid { get { return _id; } }
public int count { get { return _count; } }
public string caption { get { return _caption; } }
public bool ispublic { get { return _ispublic; } }
没错,就是这几个参数就对了,ispublic用来判断是否要从数据库返回,判断方法前面说过
实际上有了上面数据绑定的经验,到这里getalumbs的函数大概已经能想象出样子了,用个存储过程返回需要的值就行了
photos.aspx
这个调用方法是用url里的alumbid=*传入alumbid,然后得到一个photo的集合
数据的绑定和alumbs.aspx大同小异都用的datalist,objectdatasouce传入了一个alumbid属性,通过getphotos(记得吗,default.aspx里面用过~)得到照片集合
details.aspx
实际上,details.aspx并非所谓的“单张照片显示”,如果通过photoid进行单张显示,那么处理同一相册的翻页会比较麻烦,于是这里用了一个比较好的方法,实质上所谓
details.aspx就是一个只显示一张图片的photo.aspx,因此只要让datalist只显示一条记录(这时候就应该改用fromview),然后用自动翻页功能就行了,所以在photos.aspx调用
details的时候传入的并非photoid,而是一个pageindex,为了做到翻页,在!ispostback里面必须再更新当前页
有一个小技巧,在fromview模板里的button只要指定一个相应的commandname和commandargument,就可以实现各种页面功能,包括插入删除一类,具体的值书上和msdn都有,这样
的好处是可以用自己的imagebutton而不必用原装的那个难看的button
基于以上,他的数据源和alumbs一模一样~~~
这一块儿就结束了,下面的任务是看admin里面的东西,这里涉及到了插入删除图片,一些比较灵活的列表使用~这几天有些事情,可能得后天再看了,不算麻烦
admin之后,会继续研究这个程序使用的成员服务,都比较简单,成员服务之后,整个程序就差不多了,可以开始准备研究petshop~