日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

如何在VS.NET/C# Builder開發的頁面中不妨完成DOS下錄入數據回車換行的技巧

如何在VS.NET/C# Builder開發的頁面中不妨完成DOS下錄入數據回車換行的技巧

更新時間:2022-05-09 文章作者:未知 信息來源:網絡 閱讀次數:

如何在VS.NET/C# Builder開發的網頁中也能實現DOS下錄入數據回車換行的功能
北京煤炭科學研究總院經濟與信息研究所 丁報圣

在DOS年代,錄入數據時我們習慣了在錄入完一行數據后敲一個回車轉入下一行的數據錄入。昔日DOS的輝煌已經成為過去,如今更加友好易用的GUI圖形操作界面Windows已經進入了我們的日常生活。
1996年Windows95的出現是軟件史上的一次偉大革命。Windows 是美國微軟公司開發的一種圖形方式的操作系統,它的出現克服了 DOS 中難記的一些命令,使計算機與人更親近,只要輕輕點擊鼠標,計算機就會完成一個動作。同時windows也改變了原先DOS下錄入數據敲回車的方式,現在我們若是在錄入數據時希望光標跳到下一行或下一個輸入框則只能按鍵盤上的TAB鍵或用鼠標點擊下一個輸入框。這個改變對于沒有接觸過DOS操作系統的計算機用戶也許沒有什么大的影響,但是對于從DOS下轉過來的的計算機用戶卻是一個雞肋;特別是我們的數據錄入人員,在DOS年代已經習慣在錄入一行數據時敲一下回車繼續下一行數據的錄入。能不能眷顧一下這些老用戶的習慣也是我們開發人員應該考慮的事情。
筆者在前不久的一個項目中就遇到了這樣的問題:用戶要求我們的前臺錄入頁面提供支持回車換行的功能。做過開發的人都知道在傳統windows應用程序中實現回車換行其實并不太難,我們可以通過截獲鍵盤的回車按鍵值,然后通過發送消息使錄入界面中的下一控件(如:文本框輸入框等)獲得輸入焦點來達到這個目的。在WEB頁面中我們也可以通過腳本(JAVASCRIPT或VBSCRIPT)語言設置WEB控件的焦點來實現。
在傳統的ASP或JSP/PHP中編寫的WEB應用程序中實現回車換行的功能時,我們通常的做法就是在控件的OnkeyPress事件、OnClick事件或頁面中的OnSubmit等事件中寫上一段JAVASCRIPT或VBSCRIPT代碼捕捉到鍵盤回車的鍵值,然后人為指定跳轉順序實現回車換行,這種做法缺點只能適用于頁面控件元素很少項目不大的場合,一旦頁面控件元素或該類文件很多時,這種人工方式必然要消耗很大的工作量。能不能有一個行之有效的辦法使我們一勞永逸?這就是本文筆者要討論的內容。諸位看官莫急,容我慢慢道來:
我們的項目是用VB.NET開發的,前臺錄入界面是VB.NET程序編譯后生成的HTML頁面,在瀏覽器中運行。VB.NET開發的程序最大的好處是程序代碼可以和界面相隔離,也就是相互獨立;但是用VB.NET開發的程序編譯后生成的HTML錄入界面中的控件元素名稱是很難確定的,雖然也會具有一定的命名規則。在編譯前我們是無法得知編譯生成頁面上的可錄入控件元素名稱的。
這樣一來我們就碰到了一個問題,難道說我們要實現DOS下的回車換行功能就只有打開一個個的ASPX文件查看其中的元素名稱,然后按ASP或JSP/PHP中的做法寫相應的JAVASCRIPT或VBSCRIPT代碼了嗎?這顯然是一個讓人暈倒的事實;我們的這個項目有上百個ASPX文件,要打開上百個文件一一按ASP或JSP/PHP中的做法寫下JAVASCRIPT或VBSCRIPT回車實現代碼簡直就是奇聞。筆者通過查MSDN和反復實踐找到了解決方法。
下面我將用JavaScript腳本語言為例來解決這個問題,在寫代碼前我得向大家介紹一些相關知識;瀏覽器中瀏覽的頁面文件在JavaScript中稱之為一個文檔對象(DOM)。在 JavaScript 能夠涉及的范圍內有如下幾個“大”對象:Window, Document, Location, Navigator, Screen, History 等。Window對象是Document、Location和History對象的父對象。
圍繞我們要解決的問題,這里我們重點提一下Document、Form、Elements三個對象及Onkeypress事件,Document 文檔對象:是指描述當前窗口或指定窗口對象的文檔。它包含了文檔從<head>到</body>的內容。用法:document (當前窗口)或 <窗口對象>.document (指定窗口) ; Form 對象:document.forms[] 是一個數組,包含了文檔中所有的表單Form ;Elements對象:為表單元素對象,<表單對象>.elements 是一個數組,包含了該表單所有的對象;Onkeypress事件是一個鍵盤事件,是在用戶按下鍵盤上的鍵時引發的事件。通過這三大對象再配合Onkeypress事件就可以完成現我們的要求;
下面是最終的實現代碼清單:
var JumpTypeArray =new Array("text","password","textarea","checkbox","radio",
"select","select-one","select-multiple","file")//引用頁面上可獲得焦點元素類型
var DebarTypeArray =new Array("submit","reset","button","checkbox","radio",
"select","select-one","select-multiple","hidden")//引用頁面上需排除元素類型
function inStrArray(src,dec)
{//檢查給定串是否在指定字符串數組中,如在返回索引號,否返回-1;
for (var i=0 ; i<dec.length; i++)
{
if (src==dec[i])
{
return i;//定位成功,返回索引號
break;
}
}
return -1; //定位失敗,返回-1
}
function checkCR(evt)
{//回車響應函數
var evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
var frm=document.forms[0]; //指定FORM名稱為頁面中的第一個
if ((evt.keyCode == 13) && (inStrArray(node.type,JumpTypeArray)!=-1))
{//判斷當前對象是否為可輸入對象,對象類型數組:JumpTypeArray
for (var i = 0 ; i < frm.elements.length; i++)
{//for begin
if (frm.elements[i].name==node.name)
{//定位當前對象
if ((i+1)< frm.elements.length)
{//對象數組索引越位判斷
if (inStrArray(frm.elements[i+1].type,JumpTypeArray)!=-1)
{ //判斷當前對象下一個對象是否為可輸入組件,對象類型數組:JumpTypeArray
frm.elements[i+1].focus();//設置焦點
if (inStrArray(frm.elements[i+1].type,DebarTypeArray)==-1)
{ //過濾不可選中文本對象,對象類型數組:DebarTypeArray
frm.elements[i+1].select();//選中組件文本內容
}
}
return false;//禁止提交表單內容
break;
}
else
{//提交表單內容
return true;
break;
}
}
}//end for
}
}
document.onkeypress = checkCR;

引用說明:將上面的代碼存成文件,如:WebEnter.js,然后在要實現回車換行的頁面中寫上:
<script language="JavaScript" src="path+WebEnter.js"></script> 即可。
Path:是WebEnter.js文件所在路徑。

適用環境:Windows9x/NT/2000/XP+ASP/JSP/PHP/ASP.NET+IE4.x(及以上版本)

注意事項:
1、引用頁面中不能有多個表單(Form)。
2、引用頁面中不允許有重名對象(object)。

調用例子:http://dbs.myrice.com/dbs/Demo.html

最后需要說明的是:當引用頁面在NS系列瀏覽器中瀏覽時,以上代碼需修改,因為在NS中的瀏覽器對象和IE中的對象是有一點區別的,這個就留給讀

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 国产欧美精品一区二区三区 | 国产福利视频一区二区三区 | 91在线免费公开视频 | 亚洲精品一区二区不卡 | 99亚洲精品高清一二区 | 天天操比| 国产a不卡| 国产美女一区精品福利视频 | 日韩国产精品99久久久久久 | 日韩精品欧美视频 | 国产精品久久久亚洲 | 免费看色视频 | 天天做夜夜操 | 在线成人观看 | 久久综合九九亚洲一区 | 久久无码精品一区二区三区 | 欧美亚洲综合色在 | 亚洲视频一区在线播放 | 国产视频久久 | 91精品啪在线观看国产18 | 天天5g天天爽 | 夜夜摸视频网 | 在线看片日韩 | 澳门色网 | 久久国产精品久久久 | 台湾一级毛片永久免费 | 日本高清在线免费 | 91短视频社区在线观看 | 91精品国产麻豆福利在线 | 2017天天鲁夜夜夜夜夜夜夜 | 人人艹在线 | 久久成人亚洲 | 国产亚洲精品国产一区 | 亚洲欧美日韩中文高清ww | 九九热精品免费观看 | 91久久综合九色综合欧美98 | 欧美性野久久久久久久久 | 亚洲成综合人影院在院播放 | 日本五级床片午夜视频 | 黄黄的网站在线观看 | 欧美一级专区免费大片野外交 |