日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

ASP.NET 2.0中構(gòu)造個(gè)性化網(wǎng)頁(yè)_.Net教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:ASP.NET中利用存儲(chǔ)過(guò)程實(shí)現(xiàn)模糊查詢
一、建立存儲(chǔ)過(guò)程 在MSSQL中的Northwind數(shù)據(jù)庫(kù)中為employess表新建存儲(chǔ)過(guò)程(作用按LastName進(jìn)行模糊查詢): CREATE PROCEDURE Employess_Sel @lastname nvarchar (20) AS select

在WEB應(yīng)用中,我們經(jīng)常要?jiǎng)?chuàng)建個(gè)性化的網(wǎng)頁(yè)。什么是個(gè)性化的網(wǎng)頁(yè)呢?舉個(gè)例子,大家經(jīng)常使用熟悉的搜索引擎google,當(dāng)我們?cè)O(shè)置了每次要使用的個(gè)性化語(yǔ)言偏好,比如使用中文后,在下次使用google時(shí),則google會(huì)出現(xiàn)中文界面的頁(yè)面,十分方便。在asp.net 2.0中,我們可以使用profile功能,構(gòu)造象上文提到的google那樣的個(gè)性化網(wǎng)頁(yè)。下面,我們舉個(gè)例子來(lái)說(shuō)明,在該例子中,我們建立一個(gè)日歷,每次用戶可以選擇喜歡的語(yǔ)言(中文,英文)設(shè)置,當(dāng)用戶選定了語(yǔ)言設(shè)置后,則下次用戶重新訪問(wèn)該頁(yè)面時(shí),則會(huì)出現(xiàn)對(duì)應(yīng)語(yǔ)言顯示的頁(yè)面。

  首先,我們使用visual studio express beta 1,創(chuàng)建一個(gè)新的web站點(diǎn),使用vb.net語(yǔ)言,接著往窗體添加如下控件,如下圖:

  其中分別添加如下控件:一個(gè)label標(biāo)簽,一個(gè)日歷控件,一個(gè)dropdownlist控件,一個(gè)button控件,而對(duì)于dropdownlist控件的設(shè)置采用如下方式:

  ·Text Value 目的
  ·English En-US 用英文顯示網(wǎng)頁(yè)
  ·Chinese Zh-CN 用中文顯示網(wǎng)頁(yè)
  ·Auto Select Auto 根據(jù)IE瀏覽器中的語(yǔ)言設(shè)置自動(dòng)選擇頁(yè)面顯示的語(yǔ)言

  接下來(lái),我們可以開始設(shè)置資源文件了。由于我們的這個(gè)應(yīng)用是一個(gè)多語(yǔ)言顯示的頁(yè)面,所以要分別設(shè)置對(duì)應(yīng)的英語(yǔ),中文資源文件。在visual studio 2005中,選擇工具菜單中的Generate Local Resource(產(chǎn)生資源文件),如下圖所示,

  當(dāng)資源文件產(chǎn)生后,你會(huì)發(fā)現(xiàn)在解決方案管理器中,當(dāng)前工程目錄下,有一個(gè)新的目錄文件夾,叫l(wèi)ocalresources。其中,default.aspx.resx這個(gè)資源文件,是default.aspx這個(gè)首頁(yè)文件要用到的資源文件(我們默認(rèn)default.aspx是用英文顯示)。接下來(lái),右鍵選定default.aspx.resx文件,在彈出的菜單中,選擇復(fù)制,然后再在localresources目錄下,選擇粘貼,這樣,就會(huì)復(fù)制一個(gè)新的資源文件,將其改名為:default.aspx.zh-CN.resx,這個(gè)將作為我們要用到的中文資源文件。

  接下來(lái),我們對(duì)資源文件進(jìn)行編輯。比如打開資源文件default.aspx.zh-CN.resx,這時(shí)會(huì)看到如下圖的資源文件,我們可以對(duì)其中的中文資源文件進(jìn)行編輯。

  在asp.net 2.0中,只需要簡(jiǎn)單在頁(yè)面aspx頭部的@page頁(yè)增加兩個(gè)新的屬性"Culture"和"UICultrue", 則WEB應(yīng)用程序會(huì)自動(dòng)在運(yùn)行時(shí),根據(jù)預(yù)先設(shè)定好的資源文件,自動(dòng)顯示相應(yīng)語(yǔ)言的頁(yè)面,如下面程序段所示:

<%@ Page Language="VB"
Culture="auto" UICulture="auto"
AutoEventWireup="false" CompileWith="Default.aspx.vb"
ClassName="Default_aspx" meta:resourcekey="PageResource1" %>

  為了測(cè)試程序,打開IE瀏覽器,將語(yǔ)言設(shè)置選定為中文,運(yùn)行程序,則可以看到,程序自動(dòng)調(diào)用了中文資源文件,顯示出來(lái)的頁(yè)面語(yǔ)言是中文,而不是默認(rèn)的英文(因?yàn)槲覀兡J(rèn)的default.aspx是調(diào)用英文資源文件的),如下圖:

  上面的程序中,我們只是利用了資源文件的特性而已,下面,我們將實(shí)現(xiàn)讓程序"記住"用戶每次選擇語(yǔ)言,就象google那樣,記住用戶每次的選擇后,下次用戶在瀏覽頁(yè)面時(shí),就會(huì)使用該語(yǔ)言的頁(yè)面了。
首先,要實(shí)現(xiàn)這樣的功能,我們必須使用asp.net 2.0中新提供的profile功能。Profile可以利用數(shù)據(jù)庫(kù)存儲(chǔ)關(guān)于用戶的個(gè)性化信息,有點(diǎn)象session對(duì)象,但session對(duì)象是有生存期的,在生存期后,session對(duì)象自動(dòng)失效了。而profile不同,除非顯式移除它。要實(shí)現(xiàn)profile功能,必須先在web.config中進(jìn)行定義,如下:

<system.web>
<profile>
<properties>
<add name="language" type="string"/>
<group name="Info">
<add name="DateSelected"
type="System.DateTime"/>
<add name="LastModified"
type="System.DateTime"/>
</group>
</properties>
</profile>

  要使用profile屬性,可以這樣:

Profile.language = "en-US"
Profile.Info.LastModified = Now
Profile.Info.DateSelected = Calendar1.SelectedDate

  在web.congfig中,將會(huì)定義一些屬性/值,分別存貯將要保存的變量和值,比如lastmodified屬性,定義其值是datatime類型,如此類推。而<group>標(biāo)簽,則是將一些相同或類似功能的變量值放在一起。在beta 1中,profile是利用access數(shù)據(jù)庫(kù)來(lái)保存這些值的。

  我們?yōu)榱艘層脩裘看卧谙吕蛑羞x擇要用的語(yǔ)言,并將其保存起來(lái),所以在提交按鈕中,寫入如下代碼:

Sub btnSet_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
 Profile.language = ddlLanguage.SelectedItem.Value
End Sub

  而為了記錄用戶每次選擇日歷中的日期,我們則利用profile.info.dateselected屬性來(lái)記錄,并且用Profile.Info.LastModified記錄下用戶每次選擇日歷中日期時(shí)的時(shí)間,如下代碼:

Sub Calendar1_SelectionChanged(ByVal sender As Object, _
ByVal e As System.EventArgs)
 Profile.Info.DateSelected = Calendar1.SelectedDate
 Profile.Info.LastModified = Now
End Sub

  當(dāng)頁(yè)面加載時(shí),我們可以取出預(yù)先保存在profile對(duì)象中的值,然后再在日歷控件中顯示上次用戶顯示的日期,以及用戶上次選擇日期時(shí)的時(shí)間。

Sub Page_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Load
Calendar1.SelectedDate = Profile.Info.DateSelected
 Response.Write("Date set on " Profile.Info.LastModified)
End Sub

  而為了在每次頁(yè)面加載時(shí),能根據(jù)之前用戶保存在profile對(duì)象中的語(yǔ)言正確顯示網(wǎng)頁(yè),必須在page_preinit()事件中寫入如下代碼:

Dim lang As System.Globalization.CultureInfo

'讀取用戶在下拉框中選取的語(yǔ)言值
Dim selectedLang As String = Request("ddlLanguage")

'如果用戶選擇auto,則在下拉框中顯示AUTO的選擇項(xiàng)
If selectedLang = "Auto" Then
 ddlLanguage.SelectedIndex = 2
 Exit Sub
End If

' 如果是POSTBACK,則讀取原來(lái)已經(jīng)保存的語(yǔ)言信息
If selectedLang IsNot Nothing Then
 lang = New System.Globalization.CultureInfo(selectedLang)
Else
'如果是第一次調(diào)用頁(yè)面
If Profile.language <> "Auto" Then
 lang = New System.Globalization.CultureInfo(Profile.language)
 Select Case Profile.language
  Case "en-US" : ddlLanguage.SelectedIndex = 0
  Case "zh-CN" : ddlLanguage.SelectedIndex = 1
  Case "auto" : ddlLanguage.SelectedIndex = 2
 End Select
Else
 '---if language is auto, then exit
 ddlLanguage.SelectedIndex = 2
 Exit Sub
End If
End If

System.Threading.Thread.CurrentThread.CurrentCulture = lang
System.Threading.Thread.CurrentThread.CurrentUICulture = lang

lblWelcomeMessage.Text = Resources.Resource.WelcomeMsg.ToString
Page.Title = Resources.Resource.PageTitle.ToString
lblSelectLanguage.Text = Resources.Resource.SelectLanguage.ToString

  下面來(lái)解釋一下代碼。首先,聲明一個(gè)cultureinfo類型的變量,這個(gè)變量將保存用戶每次選擇語(yǔ)言后的信息。

  接下來(lái),首先檢查頁(yè)面是否postback了,如果postback了(發(fā)生在頁(yè)面刷新或者點(diǎn)擊了控件,激發(fā)頁(yè)面事件后,這時(shí)用戶可能重新選擇一種語(yǔ)言了),則用下拉框中用戶選擇的語(yǔ)言去初始化cultureinfo

lang = New System.Globalization.CultureInfo(selectedLang)

  而如果頁(yè)面是第一次調(diào)用,則讀取原來(lái)profile對(duì)象中的語(yǔ)言信息,并根據(jù)其是什么語(yǔ)言,自動(dòng)設(shè)置好下拉框中的對(duì)應(yīng)顯示(使用case語(yǔ)句)。

  最后,我們?cè)O(shè)置系統(tǒng)的當(dāng)然線程的本地化語(yǔ)言為設(shè)定好的lang,并設(shè)置各個(gè)控件的值為資源文件中的值(以resources.resource.xxxx形式調(diào)用)。程序運(yùn)行后,當(dāng)用戶選擇英文時(shí),如下圖所示:

  當(dāng)用戶選擇中文提交時(shí),程序運(yùn)行如下圖所示:

  而實(shí)際上,asp.net 2.0之所以能實(shí)現(xiàn)上面的功能,實(shí)際上是利用在工程下data目錄下的一個(gè)叫aspnetdb的ACCESS數(shù)據(jù)庫(kù)來(lái)記錄的,打開其中的aspnet_profile表,就會(huì)發(fā)現(xiàn)其中記錄著用戶每次提交的信息。

  總結(jié):

  在本文中,介紹了利用asp.net 2.0的profile功能,如何去實(shí)現(xiàn)本地語(yǔ)言個(gè)性化網(wǎng)頁(yè)應(yīng)用。Profile功能利用了數(shù)據(jù)庫(kù),記錄用戶每次提交的本地語(yǔ)言化信息,可以輕松進(jìn)行讀取,從而實(shí)現(xiàn)個(gè)性化網(wǎng)頁(yè)。我們期待在visual studio 2005正式版中,profile功能能進(jìn)一步加強(qiáng)。

分享:C#實(shí)現(xiàn)的18位身份證格式驗(yàn)證算法
18位身份證標(biāo)準(zhǔn)在國(guó)家質(zhì)量技術(shù)監(jiān)督局于1999年7月1日實(shí)施的GB11643-1999《公民身份號(hào)碼》中做了明確的規(guī)定。 GB11643-1999《公民身份號(hào)碼》為GB11643-1989《社會(huì)保障號(hào)碼》的修訂版,其中指出將

來(lái)源:模板無(wú)憂//所屬分類:.Net教程/更新時(shí)間:2008-08-22
相關(guān).Net教程