|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
以前学了大概半年时间的asp(没有机会做大系统,最多是自己对公司系统做些调整和修改还有一些小程序)。应该说开始接触asp.net是今年元月5号的事。现在很想把公司的系统重新用.net来架构,却不知道如何下手。asp.net|javascript 摘要在基于B/S布局的收集信息体系开辟中,分离ASP.NET与客户真个JavaScript剧本,开辟能与数据库举行交互的电子沙盘。沙盘中图标的参数存取由客户端与服务器交互完成,图标的挪动和图标的信息扫瞄依托客户端完成。文章分离体系开辟实例,具体论述了这一办法的完成历程。
关头词ASP.NETJavaScript电子沙盘
引言
ASP.NET手艺是用于Web开辟的全新框架,它完整基于模块与组件,给Web开辟职员供应更多的天真性,是创立Web使用程序的无效工具。ASP.NET出格合用于开辟静态的Web站点,使网页与用户之间不单单是显现和扫瞄的干系,并且仍是静态交互的干系。年夜部分的交互义务都可由ASP.NET的服务器端代码来完成。笔者为某单元开辟的B/S布局收集信息体系,除一样平常功效外,还必要出格计划地舆模块。因其浩瀚的上司子单元的地舆地位会对照频仍地产生变化,而营业事情与地舆地位的设置又有侧重要干系,为此,要在体系中引进基于数据库撑持的电子沙盘。使各级用户按权限检察和设置子单元在舆图上散布。
电子沙盘的基础道理是在以舆图为背景的网页中天生多个能够挪动的图标,每个图标代表一个子单元。但在Web上仅靠ASP.NET来完成沙盘功效是对照坚苦的,由于它对交互性提出了更高的请求。这次要表现在两个方面:一是沙盘与数据库服务器的交互,这次要表现在沙盘数据在数据库中的存取;二是沙盘与用户的交互,这次要表现在用户在舆图中挪动图标(鼠标拖动举措)和扫瞄图标的信息(鼠标点击举措)两个方面。在实践操纵中,沙盘与用户的交互是对照频仍的,假如每次举措都请求扫瞄器和服务器创建一次往复路程,一定会遭到网速、服务器功能等要素的制约,从而延伸用户操纵的守候工夫,下降沙盘的有用性。
为此,要引进JavaScript手艺,来满意这类及时交互的需求。JavaScript是一种基于工具(Object)和事务驱动(EventDriven)并具有平安功能的剧本言语。JavaScript剧本嵌进在网页中,运转时JavaScript代码和网页一同下载到扫瞄器。当用户的一些操纵不触及到数据存取时,如挪动图标与扫瞄图标信息这两项次要的沙盘操纵,就能够由JavaScript剧本来完成,从而利用户、扫瞄器、服务器之间的三层交互酿成了用户、扫瞄器之间的两层交互,无效进步网页反响的疾速性和天真性。
计划思绪
本文所述的信息体系,以Windows2000Server+IIS5.0+.NET作为平台,接纳ASP.NET+C#.NET机关程序框架,SQLServer2000为背景数据库。针对该单元分为总部―分区―子单元三层布局,按行政级别划定了分歧的权限:总部级用户具有对全体子单元的扫瞄权和分配权,分区级用户具有对天职区子单元的扫瞄权和分配权,子单元具有地舆设置权。
为只管削减客户端与服务器的交互次数,电子沙盘的运转历程应分为三个步骤举行:第一步是在网页加载时,Web服务器从数据库服务器中提取图标参数(坐标值与基础信息),将JavaScript代码和网页一同下载到客户端;第二步是由JavaScript剧本卖力实行沙盘与用户的交互(设置图标与扫瞄图标信息);第三步是在用户选择保留设置时,Web服务器吸收来自客户真个坐标值等参数,并赋值给数据库服务器的存储历程,由存储历程实行数据的保留。
程序计划
1、网页加载
Web服务器依据用户ID从数据库中提取其所属的图标参数(坐标值和基础信息),再依据坐标值将图标定位在舆图中,同时将图标基础信息写进网页代码。在网页加载终了今后,天生的图标会设置在舆图上的指定地位,且附带了基础信息。节选程序以下:
privatevoidPage_Load(objectsender,System.EventArgse)//初始化
{
if(!IsPostBack)//程序是不是是第一次实行
{
stringstrConn=ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnectioncn=newSqlConnection(strConn);
SqlCommandcm9=newSqlCommand("sp_sketchmap",cn);//提取子单元称号及坐标值
cm9.CommandType=CommandType.StoredProcedure;
cm9.Parameters.Add("@unitid",SqlDbType.VarChar,50);//利用者单元编码
cm9.Parameters["@unitid"].Value=Session["unitid"].ToString();
cm9.Parameters.Add("@D1",SqlDbType.VarChar,50);//1号子单元称号
cm9.Parameters["@D1"].Direction=ParameterDirection.Output;
cm9.Parameters.Add("@D1A",SqlDbType.Int);//1号子单元横坐标
cm9.Parameters["@D1A"].Direction=ParameterDirection.Output;
cm9.Parameters.Add("@D1B",SqlDbType.Int);//1号子单元纵坐标
cm9.Parameters["@D1B"].Direction=ParameterDirection.Output;
cm9.Parameters.Add("@D1C",SqlDbType.VarChar,100);//1号子单元基础信息
cm9.Parameters["@D1C"].Direction=ParameterDirection.Output;
……
2、客户端操纵
ASP.NET中的Web控件没有坐标属性,因而它们不克不及在网页中挪动。能够接纳HTML控件中的Label控件(div),把它当做一个能够挪动的层来利用,在这个层上嵌进一个Image控件,二者兼并在一同便可作为举动的图标。
编写的JavaScript剧本次要有两类:一类是拖动举措,即图标能够被鼠标拖动到舆图上的某一名置;另外一类是点击举措,在图标被选中形态下,单击鼠标的右键能够展现图标的基础信息。节选程序以下:
<scriptlanguage="JavaScript">//JavaScript剧本
……
functiondragIt(evt)//鼠标拖动举措
{
……
if(selectedObj){
shiftTo(selectedObj,(window.event.clientX-offsetX),(window.event.clientY-offsetY))
document.forms(0).TextBox1.value=window.event.clientXCoffsetX
document.forms(0).TextBox2.value=window.event.clientYCoffsetY
document.forms(0).TextBox3.value=window.event.srcElement.id
}
}
……
functionrightclick(){//鼠标右键点击举措
if(event.button==2){
linkex.innerHTML=document.forms(0).TextBoxD1C.valuelinkex.style.posTop=plane1.style.posTop+20
linkex.style.posLeft=plane1.style.posLeft+20
linkex.style.backgroundColor="Pink"
linkex.style.visibility="visible"
}
}
</script>
3、坐标值保留
在用户完成图标的设置后,可选择保留设置,这一举措由Web控件Button按钮的Click事务引发。Web服务器将用户ID、图标ID和坐标值赋传送给数据库服务器的存储历程,由存储历程将数据保留到数据库表中。节选程序以下:
privatevoidButton1_Click(objectsender,System.EventArgse)
{
stringstrConn=ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnectioncn=newSqlConnection(strConn);
SqlCommandcm9=newSqlCommand("sp_sketchmap_modify",cn);//保留子单元坐标
cm9.CommandType=CommandType.StoredProcedure;
cm9.Parameters.Add("@unitid",SqlDbType.VarChar,50);//利用者单元编码
cm9.Parameters["@unitid"].Value=Session["unitid"].ToString();
cm9.Parameters.Add("@D1",SqlDbType.VarChar,50);1号子单元称号
cm9.Parameters["@D1"].Value=TextBoxD1.Text.Trim();
cm9.Parameters.Add("@D1A",SqlDbType.Int);1号子单元横坐标
cm9.Parameters["@D1A"].Value=Int32.Parse(TextBoxD1A.Text.Trim());
cm9.Parameters.Add("@D1B",SqlDbType.Int);//1号子单元纵坐标
cm9.Parameters["@D1B"].Value=Int32.Parse(TextBoxD1B.Text.Trim());
……
cm9.Connection.Open();
cm9.ExecuteNonQuery();
cm9.Connection.Close();
……
停止语
电子沙盘的别的一个功效是导上天图,外地图的情形产生变更时,能够实时举行交换,为包管坐标的正确性,请求导上天图要与原有舆图的巨细不异。因办法较为复杂,不再赘述。
本文所计划的电子沙盘开辟办法,已乐成使用于B/S布局的收集信息体系,实践运转标明该办法是非常牢靠与有用的。假如要拓展其功效,还能够在此基本上做更进一步的修正和完美。另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。 |
|