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

結(jié)合JavaScript與ASP.NET Web窗體進(jìn)行程序開(kāi)發(fā)

[摘要]ASP.NET為Web程序開(kāi)發(fā)提供了新的范例。其中包括一系列基于服務(wù)器的控件,這些控件類似于HTML窗體中諸如文本框、按鈕等元素。使用這些控件的問(wèn)題是必須調(diào)用服務(wù)器。JavaScript為很多任務(wù)提供多種選擇的機(jī)會(huì),而這些過(guò)程不需要調(diào)用服務(wù)器。讓我們來(lái)看結(jié)合JavaScript與ASP.NET所帶...

    ASP.NET為Web程序開(kāi)發(fā)提供了新的范例。其中包括一系列基于服務(wù)器的控件,這些控件類似于HTML窗體中諸如文本框、按鈕等元素。使用這些控件的問(wèn)題是必須調(diào)用服務(wù)器。JavaScript為很多任務(wù)提供多種選擇的機(jī)會(huì),而這些過(guò)程不需要調(diào)用服務(wù)器。讓我們來(lái)看結(jié)合JavaScript與ASP.NET所帶來(lái)的強(qiáng)大功能。

    性能是必需的
 
 
    調(diào)用服務(wù)器要求帶寬和服務(wù)器處理時(shí)間,然而對(duì)一個(gè)可以享受高速流通的局域網(wǎng)程序?qū)⒉粫?huì)有任何問(wèn)題,但是在廣域網(wǎng)中就是不同的情況。一個(gè)因特網(wǎng)用戶連接速度的不同主要取決于用戶的撥號(hào)調(diào)制解調(diào)器、帶寬或者電纜調(diào)制解調(diào)器。使用用戶型的JavaScript可以不需要調(diào)用服務(wù)器。

    傳統(tǒng)方法
    一個(gè)標(biāo)準(zhǔn)的網(wǎng)頁(yè)窗體包括像標(biāo)題框、正文和窗體在內(nèi)的頁(yè)面。JavaScript函數(shù)按傳統(tǒng)方法被放置在網(wǎng)頁(yè)窗體的標(biāo)題框,這些函數(shù)允許被頁(yè)面的其它部分載入和利用,一旦被載入,這些函數(shù)將從HTML元素中調(diào)用。

讓我們看看一個(gè)簡(jiǎn)單的JavaScript的例子:

function valSubmit() {
var doc = document.forms[0];
varmsg = "";
if (doc.firstName.value == "") {

msg += "- Please enter a first name.n";
}

if (doc.lastName.value == "") {
msg += "- Please enter a last name.n";
}

if (msg == "") {
doc.submit();
} else {
alert("The following errors were
encountered.nn" + msg);
} }

    這一函數(shù)將檢驗(yàn)數(shù)據(jù)被傳送到窗體中的兩個(gè)HIML區(qū)。如果其中一個(gè)區(qū)是空的,將顯示錯(cuò)誤信息并且停止運(yùn)行。如果兩個(gè)區(qū)都有值時(shí),窗體被提交,你可以使用以下的代碼調(diào)用這一函數(shù):

<input type="button" value="submit"
name="btnSubmit" onClick="valSubmit();">

    利用這一關(guān)系,在HIML區(qū)沒(méi)有數(shù)據(jù)之前,窗體是不會(huì)被提交的。這樣我們可以看到,代碼變得更加簡(jiǎn)單,但是由于無(wú)需調(diào)用額外的服務(wù)器而不會(huì)產(chǎn)生任何副作用。JavaScript簡(jiǎn)短而實(shí)用,這就意味著窗體不需要額外的載入時(shí)間。

    ASP.NET網(wǎng)頁(yè)窗體允許使用標(biāo)準(zhǔn)的HTML,因此你可以容易地使用前面的范例。ASP.NET用戶控件允許你很輕松地調(diào)用服務(wù)器代碼來(lái)處理Web窗體。慶幸的是,用戶控件和JavaScript的結(jié)合使用完全是可以的。我將利用一個(gè)ASP.NET按鈕控件的例子來(lái)說(shuō)明這一使用過(guò)程。

 
 
    按鈕控件的所有屬性提供了將JavaScript連接到控件的方式。首先,將JavaScript函數(shù)放置在ASP.NET網(wǎng)頁(yè)窗體中,但是通過(guò)添加返回值可以改變放置的方法。如果確認(rèn)通過(guò),函數(shù)值返回為真,與按鈕相關(guān)的服務(wù)器函數(shù)就會(huì)別調(diào)用。如果返回值為假,則窗體不會(huì)被提交。

<%@ Page language="c#" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html><head>
<title>WebForm1</title>
<script language="javascript">
function valSubmit() {
var doc = document.forms[0];
varmsg = "";
if (doc.firstName.value == "") {
msg += "- Please enter a first name.n";
}
if (doc.lastName.value == "") {
msg += "- Please enter a last name.n";
}
if (msg == "") {
doc.submit();
return true;
} else {
alert("The following errors were encountered.nn" + msg);
return false;
} }
</script>
<script language="C#" runat="server">
private void btnSearch_Click(object sender, System.EventArgs e) {
Response.Write("Search");
}
private void Page_Load(object sender, System.EventArgs e) {
btnSubmit.Attributes.Add("onClick", "return valSubmit();");
}
</script></head>
<body>
<form id="frmBuilderTest" method="post" runat="server">
<label style="Z-INDEX: 101; LEFT: 10px; POSITION: absolute; TOP: 48px">
First Name:</label>
<input style="Z-INDEX: 102; LEFT: 88px; POSITION: absolute; TOP: 48px"
type="text" name="firstName" id="firstName">
<label style="Z-INDEX: 103; LEFT: 10px; POSITION: absolute; TOP: 88px">
Last Name:</label>
<input style="Z-INDEX: 104; LEFT: 88px; POSITION: absolute; TOP: 88px"
type="text" name="lastName" id="lastName"><br /><br />
<asp:Button id="btnSubmit" style="Z-INDEX: 105; LEFT: 64px; POSITION: absolute;
TOP: 128px" runat="server" Text="Submit" Width="136px"
OnClick="btnSearch_Click"></asp:Button>
</form></body></html>

這些代碼中最為關(guān)鍵的一行是:

btnSubmit.Attributes.Add("onClick", "return valSubmit();");

    通過(guò)風(fēng)格屬性使用CSS可以將元素放置在HIML窗體。窗體將JavaScript函數(shù)和ASP.NET 按鈕 (btnSubmit)以及HTML的onClick事件連接起來(lái)。在窗體被提交給服務(wù)器時(shí),ASP.NET Button 中的onClick屬性會(huì)通知系統(tǒng)調(diào)用哪些函數(shù)。

如果你是一名VB.NET開(kāi)發(fā)人員,對(duì)于前面代碼,只需要改變代碼中的C#模塊。VB.NET相應(yīng)的代碼如下:

<script language="vb" runat="server">
Private btnSearch_Click (sender As Object, e As System.EventArgs)
Response.Write("Search")
End Sub
Private Page_Load(sender As Object, e As System.EventArgs)
btnSubmit.Attributes.Add("onClick", "return valSubmit();")
End Sub
</script>

功能強(qiáng)大的JavaScript和ASP.NET結(jié)合
    JavaScript是面向用戶網(wǎng)頁(yè)開(kāi)發(fā)的實(shí)用標(biāo)準(zhǔn)語(yǔ)言,它與ASP.NET Web窗體的結(jié)合,為開(kāi)發(fā)人員提供了一個(gè)功能強(qiáng)大的用于構(gòu)建穩(wěn)固程序的工具集,而程序的穩(wěn)固性被認(rèn)為軟件性能的一個(gè)關(guān)鍵組成部分。


----------------------------------------
作者簡(jiǎn)介:Tony Patton是一個(gè)應(yīng)用開(kāi)發(fā)程序員,獲得Java, VB, Lotus和XML證書(shū),知識(shí)面廣泛。