default.aspx是后台。
rasuser.aspx是前台。
TODO:
NavBar.htc好像没用。
有一些数据库中模块和CSS等的路径信息要改。
备份项目步骤:
1.将数据库停止。
2.将C:\Inetpub\wwwroot\目录下面的SVGRAS以及webctrl_client打包。
3.保存打包好的文件。
4.重新启动数据库。
重新部署项目步骤:
1.安装数据库。现在不用安装iewebcontrols.msi了,因为现在打包的文件中已经包含了webctrl_client了。
2.将打包文件解压到WEB根目录下,如C:\Inetpub\wwwroot\。
3.附加数据库文件。
4.在WEB管理中,将SVGRAS目录下的SVGRAS.Web目录创建为应用程序,才可以运行。
5.输入网址进行查看,如:
http://localhost/SVGRAS/SVGRAS.Web/Default.aspx
或
http://localhost/SVGRAS/SVGRAS.Web/rasuser.aspx
前者为后台,后者为前台。
修改记录:
1.修正了修改密码功能。原来的修改密码功能对密码加了两次密,一次是在传给updatePwd前,
一次是在updatePwd中,现将后者去掉了。
2.修改了toolsbar.aspx中的后两个链接为#,以待日后添加。
3.方便了数据的添加。原来数据录入模块中,添加数据时所有数据都被初始化为0,而现在的初
始化数据是随机数,这样就可以很方便的得到演示数据,免除手工输入的烦恼。
4.删除了数据库表SysManage_Func中“前台管理”的路径(该路径应该为空),修正了该链接的行为。
5.添加了成都信息工程学院,并将其3月和4月的雨量数据全部填满,方便试验和演示。
6.修正了前台效果页面中“每日降雨”和“日降雨(段)”的隐含错误,使该数据可以正常显示。
7.添加了前台效果页面中“每月降雨”和“月降雨(段)”功能,其中“每月降雨”定义为显示一
个月内每天的降雨量(以天为单位),“月降雨(段)”定义为几个月内每月的降雨量(以月为单位)。
所有降雨量均为累计值(求和),而不是平均值。
8.修改了前台效果页面中选择日期的文本框的显示方式。不同的查询方式会使第二个日期框显示或隐
藏,而不是原来的可用或不可用。
9.在根目录下添加了ras.aspx作为用户查询主页面。只要给此页面传入合适的参数,就可以显示出相应的图形。
如:ras.aspx?mode=day&display=column&cityId=0000000011&startY=2007&startM=5&startD=1
可以在此基础上做一个前端页面,获取相应的参数,再传到这个页面来显示。
10.在根目录下添加了rasuser.aspx作为用户主页,在这个页面让用户设置各种参数,在背后传给上面的页面来显示图形。
11.添加了四川地图sichuan_map.png,放在skin\img\目录下。
12.解决了第2个问题,用第二种方法,对“根模块”作特殊处理即可,具体
见代码CityData.aspx.cs中的dgData_SelectedIndexChanged方法。
13:*完善:
在rasuser.aspx中相应的链接加入onclick="query('cityId')"即可,query的参数是具体的城市ID。
不好之处就是城市ID要直接写在页面中,而没有隐藏起来。
**也许可以通过将area标签设为runat="server",然后加入服务器端方法来实现。
!(后来证实不可行,原因在于从代码中很难调用页面中的js代码,不能简单的通过Response.Write调用。)
***确实可以:
第一步:在rasuser.aspx中相应标签前面加上一个Button,如
<asp:button id="mianyang" runat="server" Text="绵阳"></asp:button><area shape="RECT" coords="365,87,404,104" href="#绵阳">
第二步:在rasuser.aspx.cs中加入相应Button的声明,如protected System.Web.UI.WebControls.Button mianyang;
第三步:在rasuser.aspx.cs中加入相应的方法,如:
private void mianyang_Click(object sender, System.EventArgs e)
{
Response.Write ( "<script language=\"javascript\">query('" + getCityIdByName("绵阳") + "');</script>" );
}
第四步:在rasuser.aspx.cs中“窗体设计器生成的代码”中的InitializeComponent方法中加入事件触发器,如:
this.mianyang.Click += new System.EventHandler(this.mianyang_Click);
第五步:将生成的按钮拖动到相应的热点上面,正好覆盖住下面的热点。再将按钮的背景颜色设为透明,
边框宽度设为0,按钮文字改为5个下划线。
这样即可。
14.SQLServerDAL中City和RainPerHour的GetMaxId函数的实现的语义不正确。它返回的应该是当前的最大ID或是最后的ID
,语义应与GetLastId相同。因此在其查询语句中不应该有+1的操作。具体参考Common.GetNextIdByTable函数的实现。
同时也因此造成前面的所有雨量数据和城市数据的ID全都是不连续的。此问题已解决。
15.通过添加check_*_mode()函数,来检查日期参数,避免了问题3。但这却不是最好的解决办法,最好是在显示
代码中支持跨月和跨年的日期。
16.更改了显示出来的图形的大小,以及标注信息,如1时,三月等等。
17.将rasuser.aspx加入到了后台管理页面的列表中,放在“前台管理”->“前台查询页面”。
现存问题:
1.一开始打开页面时,会显示出错页面。但多刷新几次就会正常。初步怀疑为外部原因,如内存太小。
2.(已解决-12)
在“城市数据录入”中,若在最上级的城市条目上面点击“选择”按钮,就会发生异常。原因是在点“选择”
按钮时,要设置下面的“上级城市”下拉列表,而此时上级城市的ID是-1。解决办法一是在数据库中添加一个
最上级的城市,比如“四川”;另一个是更改设置“上级城市”下拉列表的代码,但我还不会改。
3.(暂时已避免-15)
多日查询模式若跨月的话,查询结果是错误的。多月查询模式若跨年的话,将会忽略年份部分(还未作处理)。
4.数据库中的雨量数据只能是整数。因为在使用雨量数据的时候,都是将其当作整形来用的,即代码全都是int.Parse(rain_data)。若
要支持小数,则必须将代码中的所有相关整型变量和整型类型解析代码重新改为double和double.Parse()。