亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

結合ASP.NET與JavaScript開發電子沙盤

2019-11-18 16:55:44
字體:
來源:轉載
供稿:網友

  摘 要 在基于B/S結構的網絡信息系統開發中,結合asp.net與客戶端的javaScript腳本, 開發能與數據庫進行交互的電子沙盤。沙盤中圖標的參數存取由客戶端與服務器交互完成,圖標的移動和圖標的信息瀏覽依靠客戶端實現。文章結合系統開發實例,詳細闡述了這一方法的實現過程。

  關鍵詞 ASP.NET Javascript 電子沙盤

  引 言

  ASP.NET技術是用于Web開發的全新框架,它完全基于模塊與組件,給Web開發人員提供更多的靈活性,是創建Web應用程序的有效工具。ASP.NET特別適用于開發動態的Web站點,使網頁與用戶之間不僅僅是顯示和瀏覽的關系,而且還是動態交互的關系。大部份的交互任務都可由ASP.NET的服務器端代碼來完成。筆者為某單位開發的B/S結構網絡信息系統,除一般功能外,還需要特別設計地理模塊。因其眾多的下屬子單位的地理位置會比較頻繁地發生變動,而業務工作與地理位置的配置又有著重要關系,為此,要在系統中引入基于數據庫支持的電子沙盤。使各級用戶按權限查看和配置子單位在地圖上分布。

  電子沙盤的基本原理是在以地圖為背景的網頁中生成多個可以移動的圖標,每一個圖標代表一個子單位。但在Web上僅靠ASP.NET來實現沙盤功能是比較困難的,因為它對交互性提出了更高的要求。這主要體現在兩個方面:一是沙盤與數據庫服務器的交互,這主要體現在沙盤數據在數據庫中的存取;二是沙盤與用戶的交互,這主要體現在用戶在地圖中移動圖標(鼠標拖動動作)以及瀏覽圖標的信息(鼠標點擊動作)兩個方面。在實際操作中,沙盤與用戶的交互是比較頻繁的,如果每一次動作都要求瀏覽器和服務器建立一次往返行程,必然會受到網速、服務器性能等因素的制約,從而延長用戶操作的等待時間,降低沙盤的實用性。

  為此,要引入JavaScript技術,來滿足這種實時交互的需求。JavaScript是一種基于對象(Object)和事件驅動(Event Driven)并具有安全性能的腳本語言。JavaScript腳本嵌入在網頁中,運行時JavaScript代碼和網頁一起下載到瀏覽器。當用戶的一些操作不涉及到數據存取時,如移動圖標與瀏覽圖標信息這兩項主要的沙盤操作,就可以由JavaScript腳本來實現,從而使用戶、瀏覽器、服務器之間的三層交互變成了用戶、瀏覽器之間的兩層交互,有效提高網頁反應的快速性和靈活性。

  設計思路

  本文所述的信息系統,以Windows 2000 Server+IIS5.0+.NET作為平臺,采用ASP.NET+C#.NET構造程序框架, SQL Server 2000為后臺數據庫。針對該單位分為總部—分區—子單位三層結構,按行政級別規定了不同的權限:總部級用戶具有對全部子單位的瀏覽權和調配權,分區級用戶具有對本分區子單位的瀏覽權和調配權,子單位具有地理配置權。

  為盡量減少客戶端與服務器的交互次數,電子沙盤的運行過程應分為三個步驟進行:第一步是在網頁加載時,Web服務器從數據庫服務器中提取圖標參數(坐標值與基本信息),將JavaScript代碼和網頁一起下載到客戶端;第二步是由JavaScript腳本負責執行沙盤與用戶的交互(配置圖標與瀏覽圖標信息);第三步是在用戶選擇保存設置時,Web服務器接收來自客戶端的坐標值等參數,并賦值給數據庫服務器的存儲過程,由存儲過程執行數據的保存。

  程序設計

  1、網頁加載

  Web服務器根據用戶ID從數據庫中提取其所屬的圖標參數(坐標值和基本信息),再根據坐標值將圖標定位在地圖中,同時將圖標基本信息寫入網頁代碼。在網頁加載完畢以后,生成的圖標會配置在地圖上的指定位置,且附帶了基本信息。節選程序如下:

PRivate void Page_Load(object sender, System.EventArgs e) //初始化
{
if (!IsPostBack) //程序是否是第一次執行
{
string strConn=ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection cn=new SqlConnection(strConn);
SqlCommand cm9=new SqlCommand("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腳本主要有兩類:一類是拖動動作,即圖標可以被鼠標拖動到地圖上的某一位置;另一類是點擊動作,在圖標被選中狀態下,單擊鼠標的右鍵可以顯現圖標的基本信息。節選程序如下:

<script language="JavaScript"> // JavaScript腳本
……
function dragIt(evt) // 鼠標拖動動作
{
 ……
 if (selectedObj) {
  shiftTo(selectedObj, (window.event.clientX - offsetX), (window.event.clientY - offsetY))
  document.forms(0).TextBox1.value=window.event.clientX – offsetX
  document.forms(0).TextBox2.value=window.event.clientY – offsetY
  document.forms(0).TextBox3.value=window.event.srcElement.id
 }
}
……
function rightclick(){ //鼠標右鍵點擊動作
 if (event.button==2){
  linkex.innerHTML=document.forms(0).TextBoxD1C.value linkex.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和坐標值賦傳送給數據庫服務器的存儲過程,由存儲過程將數據保存到數據庫表中。節選程序如下:

private void Button1_Click(object sender, System.EventArgs e)
{
 string strConn=ConfigurationSettings.AppSettings["ConnectionString"];
 SqlConnection cn=new SqlConnection(strConn);
 SqlCommand cm9=new SqlCommand("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結構的網絡信息系統,實際運行表明該方法是十分可靠與實用的。如果要拓展其功能,還可以在此基礎上做更進一步的修改和完善。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久高清视频免费| 亚洲国产成人久久| 国产精品久久久av| 日韩精品免费在线视频| 国产成人亚洲综合| 亚洲香蕉伊综合在人在线视看| 亚洲欧美激情视频| 国产精品久久久久久五月尺| 日本在线精品视频| 久久久亚洲影院| 国产在线日韩在线| 国产精品亚洲аv天堂网| 最近中文字幕mv在线一区二区三区四区| 欧美高清不卡在线| 亚洲国模精品一区| 欧美日韩久久久久| 91精品久久久久| 日韩欧中文字幕| 亚洲一区二区三区777| 欧美日韩在线视频一区| 欧美亚洲在线播放| 亚洲激情 国产| 在线电影av不卡网址| 亚洲欧美在线x视频| 日韩精品在线观看一区二区| 亚洲成人网在线| 国外日韩电影在线观看| 日韩精品在线第一页| 欧美性极品少妇精品网站| 亚洲欧洲在线视频| 成人精品一区二区三区电影黑人| 亚洲少妇激情视频| 久久五月情影视| 色婷婷综合成人av| 97精品国产97久久久久久春色| 国产精品亚洲片夜色在线| 国产精品成人品| 夜夜躁日日躁狠狠久久88av| 精品欧美国产一区二区三区| 日韩欧美亚洲综合| 久久91亚洲人成电影网站| 成人中心免费视频| 国产精品亚洲第一区| 亚洲第一页中文字幕| 91精品国产综合久久香蕉最新版| 国产精品91在线观看| 亚洲精品suv精品一区二区| 亚洲最大福利视频网| 国产精品美女免费看| 成人免费在线视频网址| 97人人模人人爽人人喊中文字| 国产精品永久免费视频| 精品久久久免费| 欧美一级大片在线观看| 日韩成人在线免费观看| 亚洲成人精品视频在线观看| 久久琪琪电影院| 欧美极度另类性三渗透| 久久亚洲国产成人| 亚洲午夜小视频| 亚洲视频在线观看免费| 欧美日韩国产在线| 97热精品视频官网| 蜜臀久久99精品久久久久久宅男| 亚洲а∨天堂久久精品9966| 日韩av在线直播| 亚洲欧美国产精品va在线观看| 成人免费观看a| 欧美成人一区二区三区电影| 精品成人av一区| 在线观看91久久久久久| 国产精品久久久久国产a级| 国产97在线亚洲| 亚洲欧美综合区自拍另类| 国产精品久久久久免费a∨| 日韩理论片久久| 亚洲一区二区三| 欧美日韩另类在线| 91午夜在线播放| 久久黄色av网站| 丰满岳妇乱一区二区三区| 久久久精品网站| 亚洲欧美日韩国产中文| 欧美日韩一区二区在线播放| 亚洲人成网站免费播放| 久久久久久国产免费| 久久国内精品一国内精品| 国产亚洲精品激情久久| 国产精品精品久久久| 亚洲国产精品人久久电影| 国产精品草莓在线免费观看| 51久久精品夜色国产麻豆| 美女性感视频久久久| 亚洲精品久久久久国产| 色婷婷成人综合| 欧美极度另类性三渗透| 国产成人福利视频| 疯狂蹂躏欧美一区二区精品| 国产精品久久久久999| 日韩中文字幕欧美| 亚洲国产成人久久综合一区| 国产成人一区二| 久久69精品久久久久久久电影好| 中文字幕成人精品久久不卡| 91精品在线看| 色综合色综合久久综合频道88| 国产999精品视频| 国产成人在线一区| 久久精品国产久精国产一老狼| 日韩中文字幕网| 国语自产精品视频在线看| 欧美午夜片欧美片在线观看| 81精品国产乱码久久久久久| 热久久视久久精品18亚洲精品| 亚洲精品小视频| 中文日韩电影网站| 国产视频欧美视频| 精品久久香蕉国产线看观看gif| 欧美性在线视频| 高清亚洲成在人网站天堂| 国产不卡av在线| 国产成人鲁鲁免费视频a| 亚洲自拍偷拍一区| 亚洲男人天堂网站| 久久夜色精品国产| 久久久久国产精品一区| 91久久精品国产| 午夜精品一区二区三区在线播放| 欧美黑人又粗大| 成人精品视频99在线观看免费| 国产精品一区二区三区久久久| 久久成人18免费网站| 日韩中文字幕免费视频| 岛国视频午夜一区免费在线观看| 久久伊人91精品综合网站| 国产精品成人观看视频国产奇米| 久久综合五月天| 国产一区欧美二区三区| 日韩激情视频在线播放| 91免费人成网站在线观看18| 777午夜精品福利在线观看| 久久久久久69| 色综合色综合久久综合频道88| 亚洲第一二三四五区| 国产欧美精品va在线观看| 欧美高清一级大片| 日韩在线免费观看视频| 欧美亚洲成人免费| 成人欧美一区二区三区黑人| 亚洲成人久久电影| 一区二区亚洲精品国产| 国产成人一区二区三区电影| 国产一区二区三区在线观看视频| 欧美成在线视频| 国产成人在线亚洲欧美| 国产精品成熟老女人| 国产精品狠色婷| 久久免费高清视频| 久久国产精品偷| 夜夜嗨av色综合久久久综合网| 国产玖玖精品视频| 欧美另类老女人| 精品福利樱桃av导航| 欧美性受xxxx白人性爽|