明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

結合JavaScript與ASP.NET Web窗體進行程序開發(fā)

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

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

    性能是必需的
 
 
    調用服務器要求帶寬和服務器處理時間,然而對一個可以享受高速流通的局域網程序將不會有任何問題,但是在廣域網中就是不同的情況。一個因特網用戶連接速度的不同主要取決于用戶的撥號調制解調器、帶寬或者電纜調制解調器。使用用戶型的JavaScript可以不需要調用服務器。

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

讓我們看看一個簡單的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ù)將檢驗數(shù)據被傳送到窗體中的兩個HIML區(qū)。如果其中一個區(qū)是空的,將顯示錯誤信息并且停止運行。如果兩個區(qū)都有值時,窗體被提交,你可以使用以下的代碼調用這一函數(shù):

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

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

    ASP.NET網頁窗體允許使用標準的HTML,因此你可以容易地使用前面的范例。ASP.NET用戶控件允許你很輕松地調用服務器代碼來處理Web窗體。慶幸的是,用戶控件和JavaScript的結合使用完全是可以的。我將利用一個ASP.NET按鈕控件的例子來說明這一使用過程。

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

<%@ 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>

這些代碼中最為關鍵的一行是:

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

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

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

<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>

功能強大的JavaScript和ASP.NET結合
    JavaScript是面向用戶網頁開發(fā)的實用標準語言,它與ASP.NET Web窗體的結合,為開發(fā)人員提供了一個功能強大的用于構建穩(wěn)固程序的工具集,而程序的穩(wěn)固性被認為軟件性能的一個關鍵組成部分。


----------------------------------------
作者簡介:Tony Patton是一個應用開發(fā)程序員,獲得Java, VB, Lotus和XML證書,知識面廣泛。