\n'); } function setFlash(){ var myFlshObj = document.myFlash; var photoAlbum=document.getElementById('photoAlbum'); if(photoAlbum&&myFlshObj){ var awidth=0; awidth=parseInt(photoAlbum.offsetWidth); if(awidth<260) myFlshObj.height='150px'; if(awidth>=260 && awidth<350) myFlshObj.height='240px'; if(awidth>=350 && awidth<370) myFlshObj.height='305px'; if(awidth>=370 && awidth<550) myFlshObj.height='320px'; if(awidth>=550 && awidth<730) myFlshObj.height='455px'; if(awidth>=730) myFlshObj.height='590px'; } } function setAlbumUrl(name){ albumTypename=name; setFlash(); myFlash_DoFSCommand(null,"test"); } function showLoginWindow(ev){ var obj = document.getElementById("pop-login"); if(document.all){ obj.style.top = ev.clientY +'px'; obj.style.left = ev.clientX - 272 +'px'; } else{ obj.style.top = ev.pageY +'px'; obj.style.left = ev.pageX - 272 +'px' } obj.style.display ="block"; document.getElementById("pop-user-name").focus(); } function hideLoginWindow(){ document.getElementById("pop-login").style.display ="none"; } var blogID=getBlogID(); var UserName = ""; if(blogID!=null){ var tmpUserName=blogID.split("."); UserName=tmpUserName[0]; } function resize(obj){ if(window.event.srcElement.tagName == 'A'){ return; } obj.parentNode.childNodes[1].style.display = obj.parentNode.childNodes[1].style.display=='none' ? 'block': 'none'; obj.parentNode.childNodes[2].style.display = obj.parentNode.childNodes[2].style.display=='none' ? 'block': 'none'; } function tab(event){ var evt = (document.all)?window.event:event; if(evt.keyCode == 9){ document.getElementById("pop-password").focus(); return false; } else{ return evt.keyCode; } } function tab1(event){ var evt = (document.all)?window.event:event; if(evt.keyCode == 9){ document.getElementById("save").focus(); return false; } else{ return evt.keyCode; } } function tabTrack(event) { var evt = (document.all)?window.event:event; if(evt.keyCode == 9){ document.getElementById("pop-password-track").focus(); return false; } else{ return evt.keyCode; } }
做个性的我,做独立的我,做成功的我!!!
公告
本人爱好网页设计/ASP/ASP.NET程序开发,希望找到兴趣相头的朋友!同时也承接各种网站设计项目.QQ:105039410
日志
中国水危机
“重庆大旱,松花江水污染,滇池蓝藻,无锡水荒”等关于的水的坏消息近些年来频频出现在我们的视野中。“中国的水怎么了?”,这种更为直接对水的疑问更是连绵不觉。近日,由央视耗时两年,多名记者跋涉中国山川大地采访拍摄制作而成的大型现实纪录片《水问》正式上映,它让我们看到了中国的水系是如何的千疮百孔,如此的岌岌可危,又是何等的悲怆可怜。从而让我们不得不重新审视在追求经济高速发展的同时,如何去协调发展水,并切切实实的向我们发出警告:中国正面临着一场前所未有的水危机。
在现在看来,中国的水环境危机主要来自三个方面。
第一, 中国面临着严重的水资源短缺和水资源分布不均匀。
我国水资源总储量约2.81万立方米,居世界第六位,但人均水资源量不足
中国缺水主要表现在两个方面:农业缺水和城市缺水。由于中国是农业大国农业用水占全国用水总量的绝大部分。目前全国有效灌溉面积约占全国耕地面积的51.2%,近一半的耕地得不到灌溉,其中位于北方的灌溉耕地约占72%。河北、山东和河南三省缺水最多;西北地区缺水量也不少,而且区内大部分地区为黄土高原,人烟稀少,改善灌溉系统的难度较大;宁夏、内蒙古的沿黄灌区以及汉中盆地、河西走廊一带,则急需扩大灌溉面积。城市是人口密集和工业、商业活动频繁的地区,城市缺水在中国表现得十分尖锐。据统计:全国600多个城市中,缺水城市已达300余个,其中严重缺水的城市有114个。
黄河是中华民族的母亲河,是5000年中华文明的发祥地。但是,资料显示,黄河在1972年~1999年的27年中,共有22年出现断流,累计断流72次、1050天,其中1997年断流226天,断流距离
中国水资源的另一个特点是年内季节分布不均,形成了春旱、夏洪、秋缺、冬枯的总体格局。特别是汛期洪水径流量占全年的2/3以上,绝大部分直接排泄入海,利用难度很大,加剧了季节性缺水的矛盾。
目前,全国平均每年缺水360亿m3,其中农业缺水300亿m3,年均受旱面积2000万hm2,减产粮食300亿kg;城市和工业缺水60亿m3,影响工业产值2000多亿元,缺水城市400多座,受缺水影响的人口达1.6亿。由于北方地区地表水资源严重短缺,只能靠超采地下水、挤占生态环境用水来满足用水需求。随着人口增长和工业化、城市化水平的提高,以及保障生态环境最小用水量的要求,用水竞争将更加激烈。
第二,人为污染加剧,全国主要流域与湖泊都受到了不同程度的污染,造成了严重的水质性缺水,“有水皆污”的局面。
20世纪80年代以来,中国的工业化和城市化加速发展,与此同时,工业废水和城市生活污水也由1980年的315亿吨增加到2002年的631亿吨。农业面源污染也不断加剧,全国禽畜粪便已达27亿吨/年,化肥和农药使用量也成倍增加。由于城市、工业点源污染和农业面源污染的不断加剧,全国水环境日益恶化。1980年,全国水质良好的地表水占评价河长的80%,2000年I-III类水仅占29.1%,污染和严重污染的占70.9%。全国13个大型湖泊中,8个为劣V类,5个处于富营养化状态。
2007年夏天,我国的太湖、巢湖,以及滇池相继爆发蓝藻。淮河、海河、辽河、松花江严重污染。即使长江、黄河也不能幸免于难,正面临着水资源、水灾害、水环境、水生态四大水问题困扰。有千湖之省之称的湖北省,短短几十年间,湖泊个数减少为几百个,百湖之市的武汉市,现在仅存28个,且几乎全部为劣五类水。素有中国江南水乡,鱼米之乡的江苏无锡,连续几次出现水荒的尴尬局面,所辖地区,有河皆染,有水皆污。一直以卖开水为生的村民都不得不考虑去购买净水装置,以不至于丢掉她的营生。在湖南,“气蒸云梦泽”的洞庭湖大部分洲滩干涸开裂,往日来此度冬的鹭鸟遍寻无着。在上海,黄浦江穿城而过,紧贴长江与东海,一直享有“东方水都”的美名,然而,它却是一个严重缺水的城市。与中国北方一些城市水资源严重匮乏不同,上海有水,但缺的是好水。尽管上海的水资源总量较为充沛,但可利用的淡水资源十分有限,仅占地表水资源的20%。黄浦江被称为上海的“母亲河”,上海市民80%的饮用水来自黄浦江。尽管近年来上海市政府加大了对黄浦江环境整治力度,但“隐形”污染依然触目惊心。目前,每天仍有数百万吨废污水排入黄浦江,一年则高达20亿吨,比全年平均降水产生的径流量还多,致使黄浦江及其支流的水质终年维持在Ⅲ类至V类之间(国家规定饮用水水源水质必须在Ⅱ类水以上),这已经给黄浦江上游水源保护区形成较大压力,致使市政取水口逐年向上游迁移。由于黄浦江取水量的不断增加,而上游来水不足以稀释排入的污水,影响到黄浦江的自净能力,加重了水质污染程度。同时,又因黄浦江是潮汐型河流,咸潮入侵更使得黄浦江下游污水上溯,对城区的水厂取水口造成极大威胁。
第三,水资源利用率低,浪费现象显著。
仅2002年,全国淡水取用量达到5497亿立方米,大约占世界年取用量的13%,是美国1995年淡水供应量的1.2倍。在这种情况下,我国用水量却逐年递增,速度惊人。1949年总用水量仅为1030亿立方米,1980年为4437亿立方米,2004年增长到5548亿立方米。目前我国的用水量大约是10条黄河的水量。
农业用水效率方面,全国平均单方灌溉水粮食产量约为
面对实实在在的水问题,合理开发和可持续利用水资源就成为我们必须思考的问题了。
为了有效缓解各种水危机,使中国水利尽快走上良性发展的轨道,必须以科学发展观为指导,以水资源可持续利用为主线,以保障供水安全为主题,以满足人民群众对水的基本需求为根本出发点,坚持以人为本,人水和谐的原则,通过对水资源的合理开发、优化配置、高效利用、全面节约、有效保护和科学管理,以水资源可持续利用保障经济社会可持续发展。
我的博客搬家了,请访问http://blog.sina.com.cn/jclman,谢谢大家的关注!
本站上的所有内容已转移到以上博客!
最新版请到: 请关注http://www.jclman.cn/
下载地址:http://www.jclman.cn/show.aspx?aid=128
eWebEditor以其调用简单,使用方便,功能强大得到了广大用户的青睐,但eWebEditor却没有asp.net版本的功能完全免费的版本,eWebEditor现在推出eWebEditor简体中文精简版(V4.60)的免费版本支持asp.net,但是却不能上传,所以我把上传功能添加进去了。
使用说明:
直接将eWebEditorExtension文件夹拷贝到你的网站,然后在需要调用的地方调用,调用方法见Default.aspx页面。
在eWebEditorExtension文件夹中的config.config设置相关上传配置
现在只是完成了相关上传的功能,许多功能还不全,将会在后续之中不断完善!
作者:渝满江城
上传窗口:
插入到编辑区:
名称: 大气教学辅助软件 beta web v1.0
简介: 该软件名为“大气教学辅助软件”,是一款专门为大气污染科目教学的软件,
包括典型大气模型设计计算,各种大气参数计算,大气数据统计及绘图。该软件内每个板
块和计算点都包含相关知识背景及要点,可以作为教学参考。另外,该软件也可作为大气科
研的模拟与计算及市政计算。
截图:
登陆查看http://www.reusetech.com.cn中研究动态里面的内容。
连接地址:http://reusetech.com.cn/air/index.aspx
本软件现在还处于开发初期,还有许多内容正在完善中。。。
本软件的总体结构模式最大限度的仿照桌面应用程序,但为了方便又基于WEB构建。在窗口模式主要是采用了几个Javascript,它们都来自于http://www.dynamicdrive.com/网站,上面有许多经典Javascript模型,有对其有兴趣的朋友可以去看看,非常不错。
上次在我们院参加的挑战杯失败后,他们管院的同学有将我们的作品拿到他们院去参加,最后进了校级。刚接到消息,很可惜,我们没有进入最后的答辩环节,好像是学校只有十个队伍进最后的答辩,而且有一百多队参加,但是我们也还是不是什么都没得,被评为了二等奖,似乎是特等奖和一等奖的材可以进最后的答辩。
总的来说我在这次比赛中还是做了不少的工作。我的主要任务是和我们院的另外的两个同学一起做技术部分的工作,我们主要做的是对电子垃圾的回收,从之中提取贵金属,并且做到无毒无害。我们采用的“物理法 超临界二氧化碳萃取技术”工艺,刚方法在现在是各个国家都在研究的课题,目前还是处于探索阶段,我们的实验也没有进行过中试,所以呢,也可能是我们未能全胜的原因。我们也知道,该技术虽然先进,但还是没有成熟,当然我是指的萃取金属,特别是用于大量萃取贵金属。虽然技术上存在很多问题,但我们的技术队伍还是做了很多工作,比如在原有基本构架的基础上进行最优化的工艺流程设计,另外我们也在工程计算上有了点学习,了解些在做工程设计过程中注意的问题,成本投入等我问题。
除了上面说到的技术问题以外,我也做了些其他宣传的工作,比如网站制作,标志设计,PPT美化,封面设计等,我发觉平时不经意做的一些事情在有的时候还是蛮有用的,发两张封面图片:
这张是封面:
在来张封底,基本图是我的另一个团队成员做的,我做总体布局和文字设计等:
周末接到做一个网站的修改任务,最主要是加个导航页面,然后就是一些细节上的修改。
是我们学院无机化学精品课程的网站:http://jw.scuec.edu.cn/greatcourse/huacai2/
看看:
搞了那么久的挑战杯,于今晚落下眉目。结果让人很是伤心,在我们学院得了个不是奖的优秀奖。
昨晚通宵了,今天也是一天没有得到休息,还有其他团队成员也是连续奋战了那么多天。大家都比较失望,也不知道是问题出在了哪?是该总结下。
不过我的管理学院的团队成员将我们的作品拿到他们院又进了校级,所以也不是太伤心。
不管成败与否,还是锻炼了一次,加强了和其他同学之间合作的交流,这可能也是这次最大的也是唯一收获吧。
这个事情告一段落了,接下来也该想想我的下一步计划了,首先是英语六级,英语始终是我的心病啊。在就是要计划做几个项目在毕业前,为以后找工作打好基础。其他的,暂时还没想到............?
Ver2.1还添加了以下操作符:
is - 和调用equal方法相同. Ex: #obj1 is obj2# 会返回if obj1 equal obj2
isnot - 和调用notequal方法相同. Ex: #obj1 isnot obj2#
and - 相当于c#中的&&操作符
or - 相当于c#中的||
lt, lte, gt, gte - lt(less than,即c#中的"<"), lte(less than or equal,即c#中的"<="), gt(greater than 即c#中的">") and gte(greater than or equal,c#中的">="). 当使用数字类型操作时,必须是相同的类型.如果希望比较double和int类型,必须将int转换为double类型(使用cdouble函数).
#varOne lt 3#
#varTwo lte cdbl(3)#
#varThree gt varFour and varFive gte 5.0#
Built In Tags(内置标签???):
IF
你可以使用IF根据表达式有条件的输出文本:
<ad:if test="#booleanexpression#">
<ad:elseif test="#bool#">
<ad:else>
</ad:if>
elseif和else是可选的,当if运算返回真的时候,if代码块中包含的代码将被执行(输出);否则执行elseif运算,然后是else.
Ex:
<ad:if test="#cust.country is "CHINA"#">
You are CHINA customer.
<ad:else>
You are from: #cust.country# country.
</ad:if>
如果cust.country是CHINA的话,输出:you are CHINA customer.
FOREACH
你可以使用foreach对集合内的元素进行循环遍历.
<ad:foreach collection="#collection#" var="cust" index="i">
#i#: #cust.lastname#, #cust.firstname#
</ad:foreach>
假设customers是customer的集合:customers = Customer("Tom", "Jackson"), Customer("Mary", "Foo")
输出将是:
1. Jackson, Tom
2. Foo, Mary
在循环处理中,变量名称将被集合中的元素替换.foreach中的index属性可以省略,它被用来在循环中表示循环标志.开始于1并在每次迭代中自动增加.
FOR
你可以通过一个整数标志来进行FOR循环:
<ad:for from="1" to="10" index="i">
#i#: #customers[i].name#
</ad:for>
SET
Set标签允许设值通过其他表达式:
<ad:set name="var" value="#someexpression#" />
当Set语句执行后,你可以象使用局部变量一样使用var.当存取复杂类型的对象的时候非常有用.
以下写法:
#customers[i].address.firstname#
#customers[i].address.lastname#
#customers[i].address.address1#可以写成:
<ad:set name="add" value="#customers[i].address#" />
#add.firstname#
#add.lastname#
#add.address1#
Custom Templates(定制模版):
你可以在模版文件中创建自己可调用的的模版.使用Template标签来做:
<ad:template name="ShowCustomer">
#customer.lastname#, #customer.firstname#
</ad:template>
<ad:showcustomer customer="#cust#" />
你可以为自定义的模版添加任何属性,然后就可以在模版中使用他们.自定义模版也可以使用在它之外定义的任何变量,当调用自定义模版的时候必须在最后加上/或者加关闭标签
Ex:
<ad:showcustomer />
OR
<ad:showcustomer></ad:showcustomer>
Ex:
<ad:template name="bold">
<b>#innerText#</b>
</ad:template>
<ad:bold>#cust.lastname#, #cust.firstname#</ad:bold>
输出: <b>Jackson, Tom</b> (if customer is Tom Jackson)
模版可以嵌套使用:
<ad:template name="italic">#innerText#</ad:template>
<ad:bold><ad:italic>This will be bold and italic</ad:italic></ad:bold>
模版可以嵌套定义:
<ad:template name="doit">
<ad:template name="colorme">
<font color=#color#>#innerText#</font>
</ad:template>
<ad:colorme color="blue">colorize me</ad:colorme>
</ad:template>嵌套定义的模版只能在按照定义顺序在父模版中使用.
也可以在程序中定义模版:
TemplateManager mngr = ;
mngr.AddTemplate(Template.FromString("bold", "<b>#innerText#</b>"));现在bold模版可以在以后使用了.
(未完,等续)
AderTemplate官方网站:http://www.adersoftware.com
AderTemplate dll下载地址:http://www.aspxon.com/ShowSoft/15.aspx
AderTemplate源码下载地址(含有演示):AderTemplate(dll)模版引擎(c#源码)
AderTemplate只能运行于.NET2.0之上.
这里有一个简单例子:
Thank You for your order #order.billFirstName# #order.billLastName#.
<br>
Your Order Total is: #format(order.total, "C")#
<br>
<ad:if test="#order.shipcountry isnot "US"#">
Your order will arrive in 2-3 weeks
<ad:else>
Your order will arrive in 5-7 days
</ad:if>模版文件可以含有表达式,if/elseif/else语句,foreach/for/set语句和其他模版文件.
Templates API:在模版引擎中有两个主要的类:
Template和TemplateManager.
Template含有一个简单的模版文件实例,TemplateManager被用来处理模版.
创建模版对象Template实例的方法是通过Template或者TemplateManager的静态方法:
Template template = Template.FromString(string name, string data)
Template template = Template.FromFile(string name, string filename)然后可以用它来实例化TemplateManager:
TemplateManager mngr = new TemplateManager(template);
或者可以这么做:
TemplateManager mngr = TemplateManager.FromFile(filename);
TemplateManager mngr = TemplateManager.FromString(template);使用FromString方法,参数string template可以包含模版代码.这个方法可以在没有模版文件的情况下,从动态生成的文本创建TemplateManager.
可以使用SetValue(string name, object value);来处理模版文件中的标签.
Ex:
mngr.SetValue("customer", new Customer("Tom", "Jackson"));这样就可以在模版中使用customer标签,你可以使用任何类型的对象来替换标签,当变量的值被output的时候,ToString()方法会被调用.
- Expressions 表达式(标签,应该这么理解把)
在模版文件中标签是以#包起来的字符串:
#FirstName#
这个例子会输出first name的值.如果要输出#,只要连写两个#即可.
Ex:
Your SS## is #ssnumber#
使用标签你可以输出任何变量(对象):
#somevar#
输出对象的一个属性或字段:
#somestring.Length#
属性名称不区分大小写,所以你可以:#string.length# or #string.LENGTH#
或者调用一个函数:#trim(somename)#
#customer.firstname.length#
你可以调用任何对象的方法:
#firstname.substring(0, 5)# 或者 #customer.isValid()#
Ver2.1允许你调用指定下标的Array项:
#somearray[3]# - 得到Array的第三项
#hastable["somekey"]# - 得到somekey的值从hashtable.
有一些现成的函数和很方便就能添加的函数,这些函数是:
equals(obj1, obj2) - 检查obj1和obj2是否相等,返回boolean真假
notequals(obj1, obj2) - 返回!equals(obj1, obj2). 相当于调用: not(equals(obj1, obj2))
iseven(num) - tests whether number is an even number
isodd(num) - tests whether number is an odd number
isempty(string) - 测试字符串是否为空. 和equals(string.Length, 0)相同
isnotempty(string) - 测试字符串是否含有至少1个字符
isnumber(num) - 测试num是否为数字格式
toupper(string) - 不说了
tolower(string) - 不说了
isdefined(varname) - 测试varname是否被定义
ifdefined(varname, value) - 如果varname被定义,那么返回value的值.例如:#ifdefined("name", name)# -如果name被定义的话,返回name的值,否则返回nothing.
len(string) - 返回字符串的长度.
tolist(collection, property, delim) -以delim为分隔符,把collection转化为字符串.prototype是collection的某个属性,如果prototype不为空,将返回以delim分隔的该属性的值.如果没有prototype,collection将被使用.
Ex:
假设list如下:
ArrayList list = new ArrayList();
list.Add("one");
list.Add("two");
list.Add("three");
template.SetValue("mylist", list);那可以在模版中这样写:#toList(mylist, " & ")#
最后的输出将是:one & two & three
假设list如下:
list.Add(new Customer("Tom", "Whatever"));
list.Add(new Customer("Henry", "III"));
list.Add(new Customer("Tom", "Jackson"));
template.SetValue("mylist", list);在模版中:#toList(mylist, "firstName", ",")#
最后的输出将是:Tom,Henry,Tom
isnull(obj) - 测试对象是否为null
not(boolvalue) - -_-不说了
iif(booleanExpression, iftruevalue, iffalsevalue) - 和c#中的三元表达式一样: booleanExpression ? iftruevalue : iffalsevalue
Ex:
#iif(isodd(i), "bgcolor=yellow", "bgcolor=red")#
will output bgcolor=yellow if i is odd number and bgcolor=red if i is not odd number
format(object, formatstring) - 将会调用object的ToString(formatstring).
Ex:
(如果total是货币型1208.45)
#format(total, "C")#
会输出: $1,208.45
trim(string) - 略
filter(collection, booleanproperty) - will return new List from collection for those objects whose booleanproperty property evaluates to true
gt(obj1, obj2) - 如果obj1>obj2返回true.obj1和obj2必须继承于相同的类型.
lt(obj1, obj2) - 如果obj1<obj2返回true.obj1和obj2必须继承于相同的类型.
compare(obj1, obj2) - 如果obj1<obj2,返回-1;如果obj1==obj2,返回0,如果obj1>obj2返回1.obj1和obj2必须继承于相同的类型.
or(bool1, bool2) - 如果bool1为真或bool2为真,返回真
ex:
#or(equals(state, "IL"), equals(state, "NY"))# - 如果state=="IL"或者state=="NY"返回真
and(bool1, bool2) - 不罗嗦了
comparenocase(string1, string2) - will do case insenstive comparison of string1 and string2 and return true if they are equal
stripnewlines(string) - 在string后换行
typeof(object) - Ex: typeof("hello") return "string". typeof(3) returns int
cint(value) - 调用Convert.ToInt32 from .net library
cdouble(value) - 转换为double类型
cdate(value) - 转换为datetime类型.Ex: #cdate("2005-5-1")#
createtypereference(type) - Ex:
#createtypereference("System.Math").Round(3.39789)#
#createtypereference("System.Math").PI#
or
<ad:set name="MyMath" value="#createtypereference("System.Math")#" />
#MyMath.Round(3.3)#
#MyMath.PI#
(未完,等续)
AderTemplate官方网站:http://www.adersoftware.com
AderTemplate dll下载地址:http://www.aspxon.com/ShowSoft/15.aspx
AderTemplate源码下载地址(含有演示):AderTemplate(dll)模版引擎(c#源码)
我的音频
个人资料
最新评论
统计
统计中,请等候...
统计中,请等候...