日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

你或许还未听说过的一些ASP.NET 2.0要诀 [转]

發布時間:2023/12/18 asp.net 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 你或许还未听说过的一些ASP.NET 2.0要诀 [转] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在開發Web應用程序方面,Asp.net是一個令人敬畏的框架。如果你使用過一段時間,那么這就不是什么秘密了。它提供了一些十分強大的新特征,而你只需要些少量的代碼就能實現。我曾經列出一個清單,上面是一些你可以只用少量或不用任何c#/VB.net代碼就能實現的非常簡單(甚至很酷)的功能。如果你有其他建議,可以添加評論,如果你的建議是一件能夠容易應用的任務,我將進一步更新我的清單。

1、當頁面PostBacks的時候,保持滾動條的位置。
在ASP.NET 1.1中,當進行postback 操作的時候,如果想保持滾動條的位置,那真是一件痛苦的事情,特別是當頁面上有一個grid(表格?)而你想編輯某一具體行的時候。頁面將會重新加載,滾動條位于頁面頂端,而不是你期望的位置,這樣你就不得不下拉滾動條。在ASP.net2.0中,你可以簡單地在Page directive這里加上MaintainScrollPostionOnPostBack 屬性(來實現同樣的功能)。
<%@?Page?Language="C#"?MaintainScrollPositionOnPostback="true"?AutoEventWireup="true"?CodeFile=""?Inherits=""?%>?
2、當頁面加載的時候,控件獲得默認焦點。
這是另一件很簡單的事情,而不用通過寫javascrip腳本。如果你的頁面上只有一個(或者兩個)文本輸入框,用戶為什么非要點擊文本框之后才能開始輸入呢?光標難道就不能自動位于文本框,用戶可以馬上輸入?使用HtmlForm控件的DefaultFocus 屬性,你就可以很容易地做到。
<form?id="frm"?DefaultFocus="txtUserName"?runat="server">
??

</form>??
3、當用戶按下Enter鍵的時候,設置默認觸發按鈕。
在ASP.NET 1.1中,這又是一件十分痛苦的事情。當用戶按下Enter鍵的時候,你需要寫一些javascript代碼,來保證頁面上適當的按鈕觸發一個服務器端“Click”事件。幸運的是,每當用戶按下Enter鍵的時候,你現在可以使用HtmlForm的DefaultButton 屬性來設置點擊哪一個按鈕。還有一種情況,每當user(指光標是否更合適?)進入頁面上不同面板觸發不同的按鈕,(這個情況下),就可以設置Panel控件的DefaultButton 屬性。
<form?id="frm"?DefaultButton="btnSubmit"?runat="server">
??

</form>?
4、容易地定位nested controls(嵌套控件?排列整齊的控件?表達不出來...呵呵~)。
在一個頁面的控件層次中查找某些控件,確實是一件很頭痛的事。但是如果你知道控件是如何嵌套(nest)的,你可以使用不怎么常用的快捷方式"$"來查找控件,而不用寫遞歸代碼。If you're looking for a great way to recursively find a control (in cases where you don't know the exact control nesting) check out my good buddy Michael Palermo's blog entry.(這一句是廣告,不翻了~)。以下代碼展示了如何使用DefaultFocus 屬性來給嵌套在FormView控件里面的文本框設置焦點。注意,用“$”來劃定嵌套方式(nesting):
<form?id="form1"?runat="server"?DefaultFocus="formVw$txtName">
????
<div>
????????
<asp:FormView?ID="formVw"?runat="server">
????????????
<ItemTemplate>
????????????????Name
:?
????????????????
<asp:TextBox?ID="txtName"?runat="server"?
????????????????????Text
='<%#?Eval("FirstName")?+?"?"?+?Eval("LastName")?%>'?/>
????????????
</ItemTemplate>
????????
</asp:FormView>
????
</div>
</form>在服務器端代碼中調用FindControl()方法,也有一點小技巧。想了解更多細節,稍后請訪問 I blogged about this 。這里有一個例子:
TextBox?tb?=?this.FindControl("form1$formVw$txtName")?as?TextBox;
if?(tb?!=?null)
{
????
//Access?TextBox?control
}?


5、Strongly-typed access to cross-page postback controls強類型方式訪問跨頁面PostBack控件。
這一條比其他任何一點都更加involved(“包含”?不像,應該是“不常用”的意思吧),但是十分有用。一個頁面提交信息到另一個頁面,在這里ASP.NET 2.0介紹了跨頁面提交的概念。按鈕提交數據到一個頁面,把按鈕的PostBackUrl屬性設置為目標頁面的名字,就是通過這種方式(實現跨頁面提交)。
一般情況下,可以通過PreviousPage.FindControl("ControlID")方式來訪問提交的數據。然而,這需要看情況(requires a cast),如果你需要訪問先前頁面中的屬性(經常需要這么做)。如果在發起回傳操作的頁面后臺代碼中增加一個公有屬性,那么你可以通過在本次回傳的目標頁中增加PreviousPageType directive,以強類型的方式來訪問這些公有屬性。如果你還沒有嘗試過,這聽起來或許有點混淆,所以允許我多解釋一些。

假如有一個頁面叫做Default.aspx,同時向外提供一個公有屬性,來返回頁面中定義的TextBox的值。數據所要提交到的頁面(姑且叫做SearchResult.aspx吧)就能夠以強類型的方式訪問到這些屬性,只需要在SearchResult.aspx頁面頂端增加PreviousPageType directive:

<%@?PreviousPageType?VirtualPath="Default.aspx"?%>?

通過添加這個directive,SearchResult.aspx中的代碼就可以以強類型的方式訪問Default.aspx中定義的TextBox。在以下的示例中,假設Default.aspx中定義的屬性名是SearchTextBox.

TextBox?tb?=?PreviousPage.SearchTextBox;?

很明顯,這行代碼只有在上一頁(Previous Page)是Default.aspx的情況下才能正常運行。同時PreviousPageType 也有一個TypeName屬性,根據這個屬性,你可以定義一個基類型,這樣你可以讓一個或者多個頁面獲取這個基類型的值來支持多頁面。你可以從這里了解更多關于PreviousPageType。
(這段代碼不好翻譯,免于出錯,僅給出部分意思,望達人補充,原文如下:This code obviously only works if the previous page is Default.aspx.? PreviousPageType also has a TypeName property as well where you could define a base type that one or more pages derive from to make this technique work with multiple pages.? You can learn more about PreviousPageType here.)

6、強類型方式訪問MasterPages控件。
PreviousPageType directive 不是唯一一種提供強類型訪問控件的方式。如果想通過強類型的方式訪問定義在MasterPages中的控件,你可以在要顯示的頁面中增加MasterType directive(記住,MasterType directive和PreviousPageType directive一樣,也可以定義一個類型名)

<%@?MasterType?VirtualPath="MasterPage.master"?%>?

這樣,你就能在content page中按以下代碼方式訪問目標master page中的屬性:

this.Master.HeaderText?=?"Label?updated?using?MasterType?directive?with?VirtualPath?attribute.";?

你也可以找到一些關于使用master page的技巧,包括在我先前的一篇blog中所提到的“共享master page訪問IIS虛擬目錄”等。

7、驗證組 Validation groups
你有這樣一個頁面,包含幾個控件和幾個按鈕。當點擊其中一個按鈕的時候,你希望evaluate指定的按鈕(evaluate原意:評估,得到……的值;這里的意思:得到按鈕的值),而不是頁面中所有的按鈕。在ASP.NET 1.1 中,如果不去resorting to some hack code(怎么譯?)的話,就很難處理這樣的問題。ASP.NET 2.0給所有的驗證控件和按鈕(Button,LinkButton)增加了一個ValidationGroup屬性,可以很容易地解決問題。如果在頁面頂端有一個TextBox和一個Button控件,緊挨著TextBox是一個RequiredFieldValidator控件,把button和RequiredFieldValidator控件上的ValidationGroup屬性值設置為相同的值,當點擊按鈕的時候,你就能fire(“激活”?不解~)一個驗證。當點擊按鈕的時候,任何定義在ValidationGroup之外的驗證都被忽略了。這里有一個示例:

<form?id="form1"?runat="server">

????Search?Text
:?<asp:TextBox?ID="txtSearch"?runat="server"?/>?

????
<asp:RequiredFieldValidator?ID="valSearch"?runat="Server"?
??????ControlToValidate
="txtSearch"?ValidationGroup="SearchGroup"?/>?

????
<asp:Button?ID="btnSearch"?runat="server"?Text="Search"?
??????ValidationGroup
="SearchGroup"?/>
????
.
????Other?controls?with?validators?and?buttons?
defined?here
</form>?

8、編碼的時候查找控件或者變量的名字。
這個技巧和Asp.net沒有直接關系,與VS.net反而更有關系。對你們這些只記住了控件或變量名的前幾個字母而沒有記住全名的人來說,這個技巧確實十分有用。這讓我又有機會去提起來自microsoft下載到的兩個偉大的下載。第一,在輸入控件名的前幾個字母的時候,按下CTRL+SPACEBAR,VS.net將會跳出一個匹配項的簡短列表。的確,這將更加容易地找到控件或者變量的名字。(譯者注:怎么沒有第二了?)對于感興趣的朋友,微軟提供整套完整的VS.net快捷鍵下載:c# Version here和VB.NET Version here?

轉載于:https://www.cnblogs.com/SoulStore/archive/2007/04/23/723610.html

總結

以上是生活随笔為你收集整理的你或许还未听说过的一些ASP.NET 2.0要诀 [转]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产91丝袜在线播放 | 一级大片视频 | 日韩一级在线观看 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 天堂а√在线最新版中文在线 | 青青青草视频 | 美女日批网站 | 91在线观看欧美日韩 | av福利在线观看 | 综合五月婷婷 | a天堂v| 悠悠色综合网 | 国产精品九九 | 国产一区二区三区在线免费观看 | 国产在线三区 | 国产精品伦一区二区三区 | 欧美福利影院 | 一区二区三区在线免费 | 欧美一区二区三区成人精品 | v99av| 久久涩综合| 日日干夜夜撸 | 日本成人三级 | 久久久久国产一区 | 国产欧美日韩一区二区三区 | 999免费视频 | 成人在线h | 亚洲日本视频 | 伊人色影院 | 精品一区二区视频 | 福利影院在线 | 欧美久久久 | 91午夜免费视频 | 天天av网| 美女啪啪国产 | 91免费视频黄 | 伊人成人22 | 免费在线a| 亚洲国产精品系列 | 亚洲精品天堂在线观看 | 苍井空亚洲精品aa片在线播放 | 深夜视频在线播放 | 一级大毛片 | 亚洲短视频| 国产中文字幕精品 | 秋霞av鲁丝片一区二区 | 人妻少妇精品无码专区久久 | 国产盗摄精品一区二区酒店 | 91亚洲精品久久久蜜桃借种 | 日产电影一区二区三区 | 欧美撒尿777hd撒尿 | 成人激情电影在线观看 | 色窝网| 国产又黄又猛视频 | 亚洲第三十七页 | 99精品在线免费观看 | 久久电影一区二区 | 免费激情小视频 | av一级在线| 成人少妇影院yyyy | 国产精品久久久久久一区二区 | 亚洲码视频 | 荡女精品导航 | 日韩黄色短视频 | 成人中文字幕在线 | 亚洲综合成人在线 | 免费一级特黄特色毛片久久看 | 国产真实生活伦对白 | 国产av一区二区三区最新精品 | 男女做激情爱呻吟口述全过程 | 久久777| 日韩成人午夜电影 | 成人性生活免费看 | 精品伦精品一区二区三区视频密桃 | 少妇把腿扒开让我舔18 | 97免费人妻无码视频 | 特级西西人体4444xxxx | 国产在线一区二区视频 | 亚洲欧美综合自拍 | 免费不卡的av | 国产精品久久久久久妇女6080 | 免费福利av | 人妻少妇被粗大爽9797pw | 欧美亚洲精品天堂 | 特黄做受又粗又大又硬老头 | 日韩av高清在线观看 | 国精产品一区二区三区 | 性色欲网站人妻丰满中文久久不卡 | 热久久在线 | 蜜臀av中文字幕 | 69精品 | 久久综合免费视频 | 夜夜艹天天干 | 久草福利在线观看 | 午夜影院在线观看18 | 亚洲成av人影院 | 毛片网站免费 | 四色成人网 | 欧美丰满老熟妇xxxxx性 |