none
Web User Controls 的 Property 加入 Bindable properties RRS feed

  • 問題

  •  

     

    各位前輩

     

    小弟我昨日 ,自己寫了幾個元件, 然後將這些元件 放入, GirdView、DetailsView 類似的元件中

     

    的 TemplateField  欄位中。

     

    當我用 Design 頁面時 ,  點選 某TemplateField 的  Edit Template

     

    選擇某個 Field 將小弟 自己寫的元件, 放入此 EditItem Template

     

    然後點選,元件 選擇 Edit DataBindings

     

    在 Bindable Property 中,我想要讓自己元件的屬性能顯示在此頁面中方便作業。

     

    該怎麼做呢?  (就算點勾選  Show All Properties 還是看不到)

     

     

    目前我嘗試用

     

    System.ComponentModel; 

     

     

    把欄位設定成如下

     

        [Bindable(true), Category("Appearance"), DefaultValue("")]
        public string Text

        {
            get { return txtText.Text; }
            set { txtText.Text = value; }
        }

    .... 略

     

     

    可是依然無法在  Bindable Property 中 , 找到 Text 這個 Property

     

     

     

     

    2008年12月23日 上午 02:40

所有回覆

  • HI,

     

    看看這篇有沒有幫助:

    http://www.simple-talk.com/community/forums/thread/2141.aspx

     

    tihs

    2008年12月23日 上午 11:40
  •  

    謝謝 "這"位前輩

     

    可惜我小弟我資質愚鈍  ,看完之後,測試了一下 還是摸不著頭緒

     

    以下是我的看法

     

    前輩真是利害 能找到這個資料

     

    [DefaultValue(""), Localizable(true), Bindable(true, BindingDirection.TwoWay), WebCategory("Appearance"), WebSysDescription("TextBox_Text"), PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty), Editor("System.ComponentModel.Design.MultilineStringEditor,System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]

    第一個是預設值   第二個 是說 是否需要當地語系化  第三個是說 Bindable  ( 關於 Eval  Bind)

     

    第 三 第 四 個   在紙 Property 的歸類  和  描述  WebCategory 跟 WebSysDescription 是以前的命名 現在改成

     

     Category("Appearance"), Description("TextBox_Text") 

     

    第五個  PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty)  是 在 .ascx 內儲存的格式  可能是純 HTML 的屬性  或者 內部的屬性Tab 如  GridView 裡的 Template 標籤 

     

    第六個  Editor  typeof   我猜是   ,將 TextBox 加進  Design 畫面後  , 點選  右下角  Properties 視窗中  Text 欄位 旁  下三角形的 按鈕 所  出現的 文字編輯器   。

     

    至於放在控制項上   依據那網址上的回文 依我破爛的英文程度    我認為跟  DataBindingHandler  有關係

    下列是有關Control 部分     眼尖的人  因該看的出來   有些是指 TextBox 相關的東西

     

    [ControlBuilder(typeof(TextBoxControlBuilder)), ValidationProperty("Text"), SupportsEventValidation, ControlValueProperty("Text"), DataBindingHandler("System.Web.UI.Design.TextDataBindingHandler, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), DefaultProperty("Text"), DefaultEvent("TextChanged"), Designer("System.Web.UI.Design.WebControls.PreviewControlDesigner, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), ParseChildren(true, "Text"), AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal), AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]

     

    唯一的線索是DataBindingHandler   可是我查了一下  看不出來  跟  Bindable  Property 有什麼關係

     

    抱歉小弟愚鈍  請前輩清楚的指名出來 該怎麼做    我看完之後還是不了解

    2008年12月23日 下午 01:12