最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

asp.net FindControl方法誤區(qū)和解析

 更新時(shí)間:2012年01月09日 21:06:57   作者:  
在ASP.NET中Control都有一個(gè)FindControl方法,其作用是根據(jù)ID(注意既不是UniqueID也不是ClientID)在Control所在的命名容器中尋找相應(yīng)控件,但實(shí)際使用中存在很多誤區(qū)和陷阱,下面談?wù)剛€(gè)人對(duì)此的理解
1.認(rèn)為FindControl方法尋找的范圍是給定Control的后代控件。
復(fù)制代碼 代碼如下:

<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Panel ID="Panel1" runat="server">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
</asp:Panel>
</form>

如上面代碼,后臺(tái)用Panel1.FindControl("Button1")尋找,認(rèn)為這樣范圍小些可以提高效率,其實(shí)即使用TextBox1.FindControl("Button1")也一樣能找到。前有所述,F(xiàn)indControl方法是根據(jù)ID在Control所在的命名容器中尋找相應(yīng)控件。當(dāng)執(zhí)行TextBox1.FindControl("Button1")時(shí),ASP.NET先獲取TextBox1.NamingContainer,其值為頁(yè)面本身(最后生成的xxxx_aspx類(lèi)實(shí)例),再向下遞歸尋找相應(yīng)ID的控件,所以一樣能找到Button1。

同樣的,如果用TextBox1.FindControl("Label1")也是能找到Label1的。

2.不理解為什么this.FindControl方法找不到GridView里的控件。

其實(shí)很好理解,F(xiàn)indControl方法尋找時(shí)只在本命名容器下尋找,不會(huì)進(jìn)入其他命名容器中尋找,而命名容器(NamingContainer)不只是頁(yè)面本身,還包括GridViewRow、DataListItem、RepeaterItem、UserControl、MasterPage等等諸多控件,這些都繼承了INamingContainer接口,它們的一個(gè)顯著特征是其子控件的UniqueID和ClientID一般都不同于ID(除了頂層的頁(yè)面對(duì)象)。

3.認(rèn)為FindControl運(yùn)行效率差。

實(shí)際上ASP.NET運(yùn)行時(shí)分析aspx、ascx、master等文件標(biāo)簽結(jié)構(gòu),生成類(lèi)似Dom的控件樹(shù),一般對(duì)樹(shù)的查詢(xún)操作效率還是比較高的,尤其當(dāng)問(wèn)題規(guī)模不太大時(shí)。一般來(lái)說(shuō),實(shí)際頁(yè)面里的控件數(shù)量不可能成千上萬(wàn),而且尋找時(shí)又不能越過(guò)本命名容器,這些因素限制了問(wèn)題規(guī)模。所以說(shuō)FindControl的效率并不差。

相關(guān)文章

  • ASP.NET Core依賴(lài)關(guān)系注入

    ASP.NET Core依賴(lài)關(guān)系注入

    這篇文章介紹了ASP.NET Core中的依賴(lài)關(guān)系注入,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#編碼好習(xí)慣小結(jié)

    C#編碼好習(xí)慣小結(jié)

    c#編寫(xiě)比較好的習(xí)慣
    2008-04-04
  • ASP.Net?Core?MVC基礎(chǔ)系列之項(xiàng)目創(chuàng)建

    ASP.Net?Core?MVC基礎(chǔ)系列之項(xiàng)目創(chuàng)建

    這篇文章介紹了創(chuàng)建ASP.Net?Core?MVC項(xiàng)目的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • ADO.NET 連接數(shù)據(jù)庫(kù)字符串小結(jié)(Oracle、SqlServer、Access、ODBC)

    ADO.NET 連接數(shù)據(jù)庫(kù)字符串小結(jié)(Oracle、SqlServer、Access、ODBC)

    ADO.NET 連接數(shù)據(jù)庫(kù)字符串小結(jié),包括Oracle、SqlServer、Access、ODBC,需要的朋友可以收藏下
    2012-04-04
  • 頁(yè)面包含的處理

    頁(yè)面包含的處理

    頁(yè)面包含的處理...
    2006-08-08
  • 利用C#遠(yuǎn)程存取Access數(shù)據(jù)庫(kù)

    利用C#遠(yuǎn)程存取Access數(shù)據(jù)庫(kù)

    目前,基于數(shù)據(jù)庫(kù)服務(wù)器的桌面管理程序和Web程序已經(jīng)有太多的應(yīng)用了,尤其是網(wǎng)絡(luò)的大量普及,孤立地?cái)?shù)據(jù)庫(kù)管理系統(tǒng)無(wú)法勝任分布式管理應(yīng)用,但是面對(duì)基于Access數(shù)據(jù)庫(kù)的現(xiàn)有的桌面應(yīng)用我們也無(wú)法完全的摒棄。我們利用.Net 遠(yuǎn)程處理功能將連接和存取Access的行為封裝為一個(gè)遠(yuǎn)程對(duì)象,供網(wǎng)絡(luò)中其它客戶(hù)端通過(guò)調(diào)用該遠(yuǎn)程對(duì)象來(lái)存取實(shí)際的Access數(shù)據(jù)庫(kù)。我們以 C# 2005 為開(kāi)發(fā)語(yǔ)言來(lái)實(shí)現(xiàn)上述功能。
    2008-04-04
  • asp.net中將某字符串切割成陣列并排序列出

    asp.net中將某字符串切割成陣列并排序列出

    老師布置的另外一道題是將字符串"a;b;d;z;y;u"切割成陣列并排序列出。老師出這題也許是讓Insus.NET掌握或復(fù)習(xí)Array.Sort()函數(shù),不管怎樣,先按自己的想法實(shí)現(xiàn),然后是等老師的意見(jiàn)
    2012-05-05
  • asp.net FindControl方法誤區(qū)和解析

    asp.net FindControl方法誤區(qū)和解析

    在ASP.NET中Control都有一個(gè)FindControl方法,其作用是根據(jù)ID(注意既不是UniqueID也不是ClientID)在Control所在的命名容器中尋找相應(yīng)控件,但實(shí)際使用中存在很多誤區(qū)和陷阱,下面談?wù)剛€(gè)人對(duì)此的理解
    2012-01-01
  • asp.net Webconfig中的一些配置

    asp.net Webconfig中的一些配置

    除了手動(dòng)編輯此文件以外,您還可以使用Web 管理工具來(lái)配置應(yīng)用程序的設(shè)置??梢允褂?Visual Studio 中的“網(wǎng)站”->“Asp.Net 配置”選項(xiàng)。
    2010-07-07
  • asp.net 專(zhuān)業(yè)源代碼打包工具

    asp.net 專(zhuān)業(yè)源代碼打包工具

    我想很多人都在網(wǎng)上下載過(guò)一些示例代碼,或者收到一些別人給的示例代碼。通常為了方便,都是打成一個(gè)壓縮包的形式
    2012-03-03

最新評(píng)論

绥中县| 黑水县| 宝兴县| 民丰县| 铜鼓县| 霍城县| 乌恰县| 阳春市| 西安市| 米泉市| 焦作市| 杭锦后旗| 宜城市| 桓台县| 通化县| 会东县| 灌南县| 阿坝县| 望都县| 贺州市| 武功县| 栖霞市| 开原市| 新民市| 清丰县| 武穴市| 南木林县| 蒙城县| 通州市| 石柱| 三江| 龙游县| 明溪县| 彩票| 定襄县| 元谋县| 花莲市| 新源县| 博客| 开封市| 锡林郭勒盟|