<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      關于自定義控件設計時如何把屬性寫入aspx中的研究(下)

      雖然這一篇已經是“下”了,但是我并沒有研究清楚“自定義控件設計時如何把屬性寫入到aspx中”這個問題。
      不過,我選擇了另外一條路,做了點手腳,讓控件把屬性寫入到aspx中去了。

      其實,即使有人肯定的告訴我,在上篇中提到的ControlSerializer類的SerializeControl方法就是用于把控件屬性寫入到aspx中去的,我也實在沒辦法利用它,它的位置太“深”了。

      我是通過重寫GridView的Columns屬性來實現的。我當時想,即使實例A(如果不明白實例A指什么,請看上篇http://www.rzrgm.cn/nnhy/archive/2007/04/05/701485.html)從來不調用CreateColumns方法,但是,它肯定要調用Columns屬性吧。重載該屬性,并輸出日志,果然,有很少的幾次調用。不過,已經夠了。

      我的做法就是,在這個屬性的get方法里面,強制改變各列的屬性,再返回。設計器在生成控件的aspx時,至少要讀取Columns來生成各個列吧。

      主要代碼如下:
       1        /// <summary>
       2        /// 已重寫。獲取表示 GridView 控件中列字段的 DataControlField 對象的集合。
       3        /// 重寫以實現設計時把英文表頭轉為中文、列重新排序、列寬度調整
       4        /// </summary>

       5        public override DataControlFieldCollection Columns
       6        {
       7            get
       8            {
       9                DataControlFieldCollection cs = base.Columns;
      10                if (cs == null || cs.Count < 1 || Site == null || Site.Component == nullreturn cs;
      11                SetDefaultStype(cs);
      12                NGridView ng = Site.Component as NGridView;
      13                if (ng == null || !ng.DesignMode) return cs;
      14                try
      15                {
      16                    if (ng.GetHashCode() == this.GetHashCode())
      17                    {
      18                        //if (isEntryCreating || !(isChanged || AutoGenerateDeleteButton || AutoGenerateEditButton || AutoGenerateSelectButton)) return cs;
      19                        if (isEntryCreating) return cs;
      20                        //SetDefaultStype(cs);
      21                        if (!isChanged) return cs;
      22                        isEntryCreating = true;
      23                        CreateEntryColumns(cs);
      24                    }

      25                }

      26                catch (Exception ex) { MessageBox.Show(ex.Message, "NGridView"); }
      27                finally
      28                {
      29                    isEntryCreating = false;
      30                    isChanged = false;
      31                }

      32                return cs;
      33            }

      34        }

      35

      CreateEntryColumns就是我用來改變列屬性的方法,之前的幾個判斷,是為了防止列屬性被頻繁改變。我只需要在綁定數據源之后改變就可以了。

      語句if (ng.GetHashCode() == this.GetHashCode()),通過判斷當前對象和A對象的HashCode,來判斷是否是同一個實例,也就是說,我要求這個重載,只在實例A中生效。

      最后的結果,還挺令人滿意的。目前正在想法子重載DetailView和FormView
      posted @ 2007-04-20 21:20  大石頭  閱讀(2278)  評論(6)    收藏  舉報
      主站蜘蛛池模板: 亚洲 小说区 图片区 都市| 国产伦精品一区二区三区免费迷 | 久久精品免视看国产成人| 亚洲sm另类一区二区三区| 91蜜臀国产自产在线观看| 真实国产乱啪福利露脸| 奎屯市| 国产一区二区三区AV在线无码观看| 日本一区二区三区后入式| 国产精品高清一区二区三区| 欧美人成在线播放网站免费| 熟女熟妇乱女乱妇综合网| 日本一道一区二区视频| 精品无码av无码专区| 国产v综合v亚洲欧美大天堂| 青青热在线精品视频免费观看| 伊人久在线观看视频| 97人妻精品一区二区三区| 国产成人精品中文字幕| 久久精品夜色国产亚洲av| 国产对白老熟女正在播放| 一区二区三区四区在线不卡高清| 最新国产精品中文字幕| 亚洲国产精品色一区二区| 亚洲国产精品久久久久秋霞| 少妇人妻偷人精品系列| 色欲综合久久中文字幕网| 欧美成人h精品网站| 久热这里有精品视频在线| 在线精品视频一区二区三四 | 精品中文人妻在线不卡| 国产精品国产主播在线观看| 人妻少妇久久中文字幕| 亚洲人成网站在线在线观看| 99久久精品久久久久久婷婷| 久久这里只精品国产免费9| 97香蕉碰碰人妻国产欧美| 午夜丰满少妇性开放视频| 日韩av日韩av在线| 成人一区二区不卡国产| 一本色道久久加勒比综合|