2006年11月8日 星期三 天气晴 Last Modify: Nov 10 2006
==================================================================================
一转眼之间又过去了一周,天天都很忙而实际上却什么都没做的感觉还在继续……
今天从早上就开始为那个PII的机器装系统,装了半天最后却还是不能用,真郁闷……不过今晚去女生宿舍装系统倒是发现了女生上自习的人极少这一现实,全都买了电脑在宿舍待着看……
倒是校友会的网站初见成效,先是周日看了一下午的HTML和CSS,总算是对网页的这种初级语言有了不少的认识(手写作了英文笔记),对未来的开发有了不少有益的作用(这是后话,因为已经不是当天写的了……)。首页也已经基本完成了,新闻列表和内容显示页面也差不多了,估计本周就可以完成。
由于有了不少新的关于.net的资料,在强调命名之后页面逻辑终于明了,而且通过重构使得代码更加规范,更有逻辑型和更少的重复。看来C#的重构功能却是不错。不过新的计划是把连接字符串保存到web.Config中,不过却遇到了一点麻烦,因为server.mapPath是个需要调用的函数……所以采用了折衷的方法,和SQL Server的数据库相对麻烦一些。使用的是程序的设置值。
在web.config中:
<configuration>
<appSettings>
<add key="NewsCon" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="/>
<add key ="NewsDB" value="~/App_Data/XYH.mdb;Persist Security Info=True"/>
<add key="ClassCon" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="/>
<add key ="ClassDB" value ="~/App_Data/class.mdb;Persist Security Info=True"/>
</appSettings>
<connectionStrings/>
……
在程序中调用:
//string alConnStr = "Provider = Microsoft.Jet.OLEDB.4.0 ; " + "Data Source =" + Server.MapPath("~/App_Data/XYH.mdb");
string alConnStr = ConfigurationManager.AppSettings["NewsCon"];
alConnStr = alConnStr + Server.MapPath(ConfigurationManager.AppSettings["NewsDB"]);
string alCmdStr = "SELECT ID, name FROM AlumniAssociation";
OleDbConnection conn = new OleDbConnection(alConnStr);
conn.Open();
OleDbCommand cmd = new OleDbCommand(alCmdStr, conn);
OleDbDataReader aldr = cmd.ExecuteReader();
int columOfTable = 3;//校友分会显示的行数
int nowColum = 0;
while (aldr.Read())
{……
另外就是前一段时间努力进攻的模板列终于派上了用场,在GridView的数据绑定后事件RowDataBound中后期更改HyperLink的Text,注意不是链接,链接是用超级连接列生成的,就是NavigateUrl='<%# Eval("ID", "NewsDetail.aspx?id={0}") %>' Text='<%# Eval("title") %>'> </asp:HyperLink> 很奇怪为什么ID要写在前面,也没有仔细查Eval的用法(单向绑定),只是知道怎么用向导去生成……
为了让标题不换行,Trim文本之后要添加一个省略号,所以用ComConvert.TitleTrim方法(和原来一样,只是改了改名字),在检查到数据列的时候DataControlRowType.DataRow,按名字查找到控件(HyperLink)e.Row.FindControl("NewsTitleLink"),修改一下相应的属性就行了。代码如下:
protected void SchoolNewsList_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink SchoolNewsTitle = (HyperLink)e.Row.FindControl("NewsTitleLink");
SchoolNewsTitle.ToolTip = SchoolNewsTitle.Text;
SchoolNewsTitle.Text = ComConvert.TitleTrim(SchoolNewsTitle.Text, DEFALT_TITLE_LENGTH);
}
}
catch(Exception ex)
{
ComFunc.ErrLog(ex, reportDescription);
}
}
Rev 1.0 Creat Document Nov 8 2006
Rev 1.0 Finished Document Nov 10 2006