1、左边的聚会活动图片,因不会做Flash,就用JS代码写了一个可以轮换的东东。 这是在网上获取的JS代码,自己稍改了一下。具体代码请参考PDF文件。 2、中间的三个栏目随鼠标移动显现,也是用了一个JS方法,这个就没有抄了,是自己写的,当然也是参考了网上JS代码的。 document.getElementById("NewD1").style.visibility = "visible"; 对于其中getElementByID("NewD1")的用法,偶不是很明白,只是知道这样才能够获得其属性来进行赋值。之前想直接用document.form1.NewD1这种方法,用在DIV上面,显然是概念错误。 3、之于每个栏目显示最新的10笔数据,是在后台CS文件中从数据库获取了。在页面加载的时候就已经上去了,而不是当鼠标移过时才去从数据库获取数据。至于获取数据的方法,我是写在各自的数据表类中。容后再仔细解释。这里仅列出获出最新10条信息的方法: /// <summary> /// 获取最新的10条信息 /// </summary> /// <returns>返回一个HTML表格代码</returns> public string GetNewInfo() { StringBuilder NewInfo = new StringBuilder(); NewInfo.Append("<table height=250>"); string strSQL = "Select top 10 info_id,sort_id,sort_name,info_title,info_date,info_photo From query_info order by info_id desc"; OleDbDataReader dr = GetOleDbDataReader(strSQL,"wgrenConn"); while(dr.Read()) { // 信息类别 NewInfo.Append("<tr><td width=10px> </td><td>"); NewInfo.Append("[ " + "<a href=Sod/Info.aspx?SortID=" + dr["sort_id"].ToString() + ">"); NewInfo.Append(dr["sort_name"].ToString() + "</a> ] "); // 标示该信息是否有图片 if(dr["info_photo"].ToString() != string.Empty) { NewInfo.Append("<img src=images/jpg.gif> "); } NewInfo.Append("<a href=Sod/Put.aspx?InfoID=" + dr["info_id"].ToString() + ">"); NewInfo.Append(dr["info_title"].ToString().Length > 18 ?dr["info_title"].ToString().Substring(0,18) + "... ":dr["info_title"].ToString() + " "); NewInfo.Append(((DateTime)dr["info_date"]).ToShortDateString()); NewInfo.Append("</a>"); NewInfo.Append("</td></tr>"); } dr.Close(); NewInfo.Append("</table>"); return NewInfo.ToString(); } 4、最右边的是显示最新的两个有上传图片的会员相片。具体的方法我也是写在会员表的类中了。会员相片我保存到文件中,而且在数据表中未作任何标示,判断该会员是否有相片,完全是以文件名与会员名称来作判断的。这并不合理,是开始做数据表时的错误。看看下面的这个方法,真的是让人头痛,又无可奈何。 /// <summary> /// 在首页上显示最近两个有相片的会员 /// </summary> /// <param name="parent"></param> /// <returns></returns> public string GetUserLeft(System.Web.UI.Page parent) { StringBuilder UserLeft = new StringBuilder(); string strSQL = "Select u_name,u_true_name From wg_user order by u_id desc"; OleDbDataReader dr = GetOleDbDataReader(strSQL,"wgrenConn"); int intI = 0; string strUser = string.Empty; UserLeft.Append("<table border=0 cellpadding=0 cellspacing=0>"); while(dr.Read()) { strUser = dr["u_name"].ToString(); // 检查该会员是否有相片,若有则用显示,并使intI的值递增1 if(System.IO.File.Exists(parent.Server.MapPath("images/wgr/" + strUser + ".gif"))) { UserLeft.Append("<tr><td align=center>"); UserLeft.Append("<a href=Townee/Info.aspx?User=" + strUser + ">"); UserLeft.Append("<img border=0 width=140 alt='" + dr["u_true_name"].ToString() + "' src=images/wgr/" + strUser + ".gif>"); UserLeft.Append("</a></td></tr>"); intI ++; } // 当显示了两个有相片的会员后,退出循环 if(intI == 2) { break; } } dr.Close(); UserLeft.Append("</table>"); return UserLeft.ToString(); } 5、页面中间是一个搜索老乡的界面,以现居地和所属乡镇搜寻。点击搜索后,会传现居地的代码和乡镇代码给同乡录的相关页面。具体请参考后台PDF文件。 其中现居地因分省级区域和市级区域,在对省级区域进行选择时,页面会回送,并将相对应的市级区域绑定在市级控件中。 针对三个区域的DropDownList控件,我专门写了一个WgArea的类。因为这些绑定控件的方法会在后续的页面中重复使用。具体请参考WgArea.PDF文件。 WgArea.PDF文件下载地址: http://www.4305.cn/images/pdf/wgarea.pdf |
|