六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

怎么在VS.NET/C# Builder開發(fā)的頁面中不妨完成DOS下錄入數(shù)據(jù)回車換行的技巧

[摘要]如何在VS.NET/C# Builder開發(fā)的網(wǎng)頁中也能實現(xiàn)DOS下錄入數(shù)據(jù)回車換行的功能北京煤炭科學(xué)研究總院經(jīng)濟與信息研究所 丁報圣 在DOS年代,錄入數(shù)據(jù)時我們習(xí)慣了在錄入完一行數(shù)據(jù)...
如何在VS.NET/C# Builder開發(fā)的網(wǎng)頁中也能實現(xiàn)DOS下錄入數(shù)據(jù)回車換行的功能
北京煤炭科學(xué)研究總院經(jīng)濟與信息研究所 丁報圣

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

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

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

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

調(diào)用例子:http://dbs.myrice.com/dbs/Demo.html

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


主站蜘蛛池模板: 欧美特黄一区二区三区 | 婷婷六月综合网 | 中文字幕精品一区影音先锋 | 午夜爱爱毛片xxxx视频免费看 | 日韩毛片在线观看 | 啪啪.com | 天天插天天射天天操 | 日本大蕉香蕉大视频在线观看 | 色综合久久综合网欧美综合网 | 亚洲成a人片在线v观看 | 日韩一区二区精品久久高清 | 一区二区三区精品视频 | 香蕉啪| 污在线视频 | 日韩欧美国内 | 欧美一区二区影院 | 日韩欧美中文在线 | 日本高清视频在线的 | 日韩亚洲欧美在线 | 色五月情 | 亚洲免费人成 | 日本免费看片 | 亚洲男人的天堂久久香蕉网 | 四虎影视久久 | 四虎新地址 | 四虎影院新网址 | 天天透天天干 | 日韩中文有码高清 | 青春草视频在线观看免费 | 色www视频永久免费 色www免费视频 | 亚洲九九夜夜 | 四虎精品免费永久在线 | 日韩a级黄色片 | 青草免费在线 | 日韩精品中文字幕久久 | 手机在线观看伦理片 | 午夜性爽视频男人的天堂在线 | 五月激情综合丁香色婷婷 | 天堂tv亚洲tv日本tv不卡 | 一级片黄色免费 | 青青青视频在线播放视频 |