熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

不走尋常路 設計ASP.NET應用程序的七大絕招[1]

2013-11-13 11:05:33  來源: .NET編程 

  隨著微軟NET的流行ASPNET越來越為廣大開發人員所接受作為ASPNET的開發人員我們不僅需要掌握其基本的原理更要多多實踐從實踐中獲取真正的開發本領在我們的實際開發中往往基本的原理滿足不了開發需求我們更多的要積累一些開發技巧本文就向大家介紹一些實用技巧希望對大家的開發有所裨益

   ~ 的用法

  一般的情況下我們是使用// 這樣的相對路徑來確定和規劃我們的資源(比如圖片資源文件)但這種方式下在我們部署應用的時候可能會出錯另外對於ascx的控件中如果包含了一個圖片而這個控件被我們在不同層次的兩個目錄的aspx文件分別引用時問題就會出現了

  ~/image/aboutbmp 是一種非常好的方法它以Web應用程序的根目錄為起始點這樣使得比你使用/image/aboutbmp這樣的方式要更加靈活和方便有一點不好是這種方式是在ASPNET運行時動態解析的所以在IDE設計模式中你可能不能預覽它

   在刷新和提交頁面後保存你的頁面滾動條的位置

  經常有這樣的情況我們需要用戶提交一個表單但是表單中有超過+個?控件或文本框要填寫也就是說用戶需要拉動IE的滾動條才能夠填得完那麼假如用戶正在可見IE范圍的/選擇了一個組合框的值很不幸組合框是服務器端的那麼也就意味著頁面會提交一次而當用戶再看見刷新過的頁面時頁面確定在/的地方也就是顯示在頁面最開始的地方用戶只有拖動鼠標然後接著剛剛的地方再填寫剩下的個控件很不幸個控件又需要他選擇一下?

  用下面的方法可以很快地確定和記住你提交前的位置

  網上的Old Dog Learns New Tricks也有一個類似的例子Maintain Scroll Position in any Page Element不過他使用了Web Behavior這意味著你需要使用一個htc文?lt;/P>

Private Sub RetainScrollPosition()

Dim saveScrollPosition As New StringBuilder
Dim setScrollPosition As New StringBuilder

RegisterHiddenField(__SCROLLPOS )
saveScrollPositionAppend(<script language=javascript)
saveScrollPositionAppend(function saveScrollPosition() {)
saveScrollPositionAppend( documentforms[]__SCROLLPOSvalue = thebodyscrollTop;)
saveScrollPositionAppend(})
saveScrollPositionAppend(thebodyonscroll=saveScrollPosition;)
saveScrollPositionAppend(</script>)

RegisterStartupScript(saveScroll saveScrollPositionToString())

If (PageIsPostBack = True) Then

setScrollPositionAppend(<script language=javascript)
setScrollPositionAppend(function setScrollPosition() {)
setScrollPositionAppend( thebodyscrollTop = & Request(__SCROLLPOS) & ;)
setScrollPositionAppend(})
setScrollPositionAppend(thebodyonload=setScrollPosition;)
setScrollPositionAppend(</script>)
RegisterStartupScript(setScroll setScrollPositionToString())

End If

End Sub

Private Sub Page_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad
RetainScrollPosition()
End Sub

   DataList使用不同風格的模板

  這招也非常實用你可以制作兩個不同的模板或表現形式分別以ascx控件的形式保存運行時根據某個條件動態的選擇使用其中的一個模板另外ScottGu認為ItemDataBound方法也可以定制你顯示的表現比如加亮某個元素或是加一個促銷廣告圖等等

Dim theme As String
theme = DropDownListSelectedValue

DataListItemTemplate = PageLoadTemplate(theme & ascx) Cool
DataListDataSource = DS
DataListDataBind()

   設置服務器端控件的焦點

Private Sub SetFocus(ByVal controlToFocus As Control)
Dim scriptFunction As New StringBuilder
Dim scriptClientId As String

scriptClientId = controlToFocusClientID
scriptFunctionAppend(<script language=javascript)
scriptFunctionAppend(documentgetElementById( & scriptClientId & )focus();)
scriptFunctionAppend(</script>)
RegisterStartupScript(focus scriptFunctionToString())
End Sub

Private Sub Page_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad
If (PageIsPostBack = False) Then
SetFocus(TextBox)
End If
End Sub

[]  []  


From:http://tw.wingwit.com/Article/program/net/201311/15143.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.