チェンジセット 1661 (default)


以下の違いを無視:
日時:
2024/08/22 19:27:12 (6週前)
更新者:
hizuya@…
ログメッセージ:
  • ObjectDataSource でデータタイプを使用しデータを更新する際に、固定値を設定する仕組みを追加。
場所:
framework/trunk
ファイル:
5個の更新

凡例:

未変更
追加
削除
  • framework/trunk/WebApplication/UI/WebControls/ObjectDataSourceFormViewPage.aspx

    r1660 r1661  
    5050                    InsertMethod="Insert" 
    5151                    UpdateMethod="Update" 
    52                     DeleteMethod="Delete"> 
    53                     <UpdateParameters> 
    54                         <sff:StaticParameter Name="IsUpdated" Value="True" Type="Boolean"/> 
    55                     </UpdateParameters> 
    56                 </sff:ObjectDataSource> 
     52                    DeleteMethod="Delete" /> 
    5753 
    5854 
     
    201197                        <div> 
    202198                            IsUpdated = [<%# Eval("IsUpdated") %>] 
     199                            <sff:ValueHolder ID="IsUpdated" runat="server" Value='<%# Bind("IsUpdated") %>' OverwriteValue="True" /> 
    203200                        </div> 
    204201 
  • framework/trunk/WebApplication/UI/WebControls/ObjectDataSourceFormViewPage.aspx.cs

    r1660 r1661  
    514514        /// <summary> 
    515515        /// <see cref="FormView101"/> の 
    516         /// <see cref="System.Web.UI.WebControls.FormView.CallingDataMethods"/> イベントハンドラです。 
     516        /// <see cref="System.Web.UI.WebControls.DataBoundControl.CallingDataMethods"/> イベントハンドラです。 
    517517        /// </summary> 
    518518        /// <param name="sender">イベントのソース。</param> 
     
    527527        /// <summary> 
    528528        /// <see cref="FormView101"/> の 
    529         /// <see cref="System.Web.UI.WebControls.FormView.CreatingModelDataSource"/> イベントハンドラです。 
     529        /// <see cref="System.Web.UI.WebControls.DataBoundControl.CreatingModelDataSource"/> イベントハンドラです。 
    530530        /// </summary> 
    531531        /// <param name="sender">イベントのソース。</param> 
  • framework/trunk/WebLibrary/Properties/Resources.designer.cs

    r1633 r1661  
    20042004         
    20052005        /// <summary> 
     2006        ///   Control of type &apos;{0}&apos; does not support the Focus operation. に類似しているローカライズされた文字列を検索します。 
     2007        /// </summary> 
     2008        internal static string NotSupported_NoFocusSupport { 
     2009            get { 
     2010                return ResourceManager.GetString("NotSupported_NoFocusSupport", resourceCulture); 
     2011            } 
     2012        } 
     2013         
     2014        /// <summary> 
     2015        ///   Control of type &apos;{0}&apos; does not support theming. に類似しているローカライズされた文字列を検索します。 
     2016        /// </summary> 
     2017        internal static string NotSupported_NoThemingSupport { 
     2018            get { 
     2019                return ResourceManager.GetString("NotSupported_NoThemingSupport", resourceCulture); 
     2020            } 
     2021        } 
     2022         
     2023        /// <summary> 
    20062024        ///   The property {1} is not supported on {0}. に類似しているローカライズされた文字列を検索します。 
    20072025        /// </summary> 
  • framework/trunk/WebLibrary/Properties/Resources.resx

    r1633 r1661  
    949949    <value>The property {1} is not supported on {0}.</value> 
    950950  </data> 
     951  <data name="NotSupported_NoThemingSupport" xml:space="preserve"> 
     952    <value>Control of type '{0}' does not support theming.</value> 
     953  </data> 
     954  <data name="NotSupported_NoFocusSupport" xml:space="preserve"> 
     955    <value>Control of type '{0}' does not support the Focus operation.</value> 
     956  </data> 
    951957  <data name="InvalidOperation_GridView_DataKeyNamesMustBeSpecified" xml:space="preserve"> 
    952958    <value>Data keys must be specified on GridView '{0}' before the data keys can be retrieved.  Use the DataKeyNames property to specify data keys.</value> 
  • framework/trunk/WebLibrary/Sources/UI/WebControls/ValueHolder.cs

    r864 r1661  
    2323namespace FCSoft.SilverFrost.Framework.Web.UI.WebControls 
    2424{ 
     25    using System; 
     26    using System.Collections.Specialized; 
    2527    using System.ComponentModel; 
     28    using System.Globalization; 
    2629    using System.Web.UI; 
     30    using FCSoft.SilverFrost.Framework.Web.Properties; 
    2731 
    2832 
     
    3539    [ControlValueProperty("Value")] 
    3640    [DefaultProperty("Value")] 
     41    [DefaultEvent("ValueChanged")] 
     42    [NonVisualControl] 
    3743    [ToolboxData("<{0}:ValueHolder runat=\"server\" Value=\"Value1\"/>")] 
    3844    [WebDescription("Description_ValueHolder")] 
    3945    [ControlInitializerTarget] 
    4046    public class ValueHolder : 
    41         Control 
     47        Control, 
     48        IPostBackDataHandler 
    4249    { 
    4350        /// <summary> 
     
    4653        private const string ValueKey = "Value"; 
    4754 
     55        /// <summary> 
     56        /// <see cref="OverwriteValue"/> プロパティ用のキー。 
     57        /// </summary> 
     58        private const string OverwriteValueKey = "OverwriteValue"; 
     59 
     60        /// <summary> 
     61        /// <see cref="ValueChanged"/> イベントの識別オブジェクトです。 
     62        /// </summary> 
     63        private static readonly object EventValueChangedKey = new object(); 
     64 
    4865 
    4966        /// <summary> 
     
    5370        { 
    5471            ControlInitializer.ApplyProperties(this); 
     72        } 
     73 
     74 
     75        /// <summary> 
     76        /// 値が変化したことを通知するイベントです。 
     77        /// </summary> 
     78        [WebCategory("Action")] 
     79        [WebDescription("ValueHolder_OnValueChanged")] 
     80        public event EventHandler ValueChanged 
     81        { 
     82            add 
     83            { 
     84                Events.AddHandler(EventValueChangedKey, value); 
     85            } 
     86 
     87            remove 
     88            { 
     89                Events.RemoveHandler(EventValueChangedKey, value); 
     90            } 
    5591        } 
    5692 
     
    6399        /// 既定値は <see langword="null"/> です。 
    64100        /// </value> 
    65         [Bindable(true)] 
     101        [Bindable(true, BindingDirection.TwoWay)] 
    66102        [Themeable(false)] 
    67103        [DefaultValue(null)] 
    68104        [WebCategory("Behavior")] 
    69         [WebDescription("Description_Enabled")] 
    70         public virtual object Value 
     105        [WebDescription("Description_Value")] 
     106        public virtual string Value 
    71107        { 
    72108            get 
    73109            { 
    74                 return ViewState[ValueKey]; 
     110                return (string)ViewState[ValueKey]; 
    75111            } 
    76112 
     
    81117        } 
    82118 
     119        /// <summary> 
     120        /// <see cref="Value"/> を上書きする値を取得または設定します。 
     121        /// </summary> 
     122        /// <value> 
     123        /// <see cref="Value"/> を上書きする値。 
     124        /// 既定値は <see langword="null"/> です。 
     125        /// </value> 
     126        [Themeable(false)] 
     127        [DefaultValue(null)] 
     128        [WebCategory("Behavior")] 
     129        [WebDescription("Description_OverwriteValue")] 
     130        public virtual string OverwriteValue 
     131        { 
     132            get 
     133            { 
     134                return (string)ViewState[OverwriteValueKey]; 
     135            } 
     136 
     137            set 
     138            { 
     139                ViewState[OverwriteValueKey] = value; 
     140            } 
     141        } 
     142 
     143        /// <summary> 
     144        /// コントロールに適用するスキンを取得または設定します。 
     145        /// </summary> 
     146        /// <value> 
     147        /// コントロールに適用するスキンの名前。 
     148        /// 既定値は、<see cref="string.Empty" /> です。 
     149        /// </value> 
     150        /// <exception cref="NotSupportedException"> 
     151        /// スキンの設定はサポートされていません。 
     152        /// </exception> 
     153        [DefaultValue("")] 
     154        [EditorBrowsable(EditorBrowsableState.Never)] 
     155        public override string SkinID 
     156        { 
     157            get 
     158            { 
     159                return string.Empty; 
     160            } 
     161 
     162            set 
     163            { 
     164                throw new NotSupportedException( 
     165                    string.Format( 
     166                        CultureInfo.CurrentCulture, 
     167                        Resources.NotSupported_NoThemingSupport, 
     168                        GetType().Name)); 
     169            } 
     170        } 
     171 
     172        /// <summary> 
     173        /// コントロールに入力フォーカスを設定します。 
     174        /// </summary> 
     175        /// <exception cref="NotSupportedException"> 
     176        /// フォーカスの設定はサポートされていません。 
     177        /// </exception> 
     178        [EditorBrowsable(EditorBrowsableState.Never)] 
     179        public override void Focus() 
     180        { 
     181            throw new NotSupportedException( 
     182                string.Format( 
     183                    CultureInfo.CurrentCulture, 
     184                    Resources.NotSupported_NoFocusSupport, 
     185                    GetType().Name)); 
     186        } 
    83187 
    84188        /// <summary> 
     
    93197            // AVOID 
    94198        } 
     199 
     200        /// <summary> 
     201        /// クラスによって実装された場合、ASP.NET サーバー コントロールのポストバック データを処理します。 
     202        /// </summary> 
     203        /// <param name="postDataKey">コントロールのキー識別子。</param> 
     204        /// <param name="postCollection">受信する名前と値すべてのコレクション。</param> 
     205        /// <returns> 
     206        /// ポストバックの結果、サーバー コントロールの状態が変化する場合は <see langword="true"/>。 
     207        /// それ以外の場合は <see langword="false"/>。 
     208        /// </returns> 
     209        bool IPostBackDataHandler.LoadPostData(string postDataKey, NameValueCollection postCollection) 
     210        { 
     211            return LoadPostData(postDataKey, postCollection); 
     212        } 
     213 
     214        /// <summary> 
     215        /// クラスによって実装された場合、コントロールの状態が変化したことを 
     216        /// ASP.NET アプリケーションに通知するために、サーバー コントロールにシグナルを送信します。 
     217        /// </summary> 
     218        void IPostBackDataHandler.RaisePostDataChangedEvent() 
     219        { 
     220            RaisePostDataChangedEvent(); 
     221        } 
     222 
     223        /// <summary> 
     224        /// ASP.NET サーバー コントロールのポストバック データを処理します。 
     225        /// </summary> 
     226        /// <param name="postDataKey">コントロールのキー識別子。</param> 
     227        /// <param name="postCollection">受信する名前と値すべてのコレクション。</param> 
     228        /// <returns> 
     229        /// ポストバックの結果、サーバー コントロールの状態が変化する場合は <see langword="true"/>。 
     230        /// それ以外の場合は <see langword="false"/>。 
     231        /// </returns> 
     232        protected virtual bool LoadPostData(string postDataKey, NameValueCollection postCollection) 
     233        { 
     234            string overwriteValue = OverwriteValue; 
     235            if (overwriteValue == null 
     236                || string.Equals(overwriteValue, Value, StringComparison.Ordinal)) 
     237            { 
     238                return false; 
     239            } 
     240 
     241            Value = overwriteValue; 
     242            return true; 
     243        } 
     244 
     245        /// <summary> 
     246        /// クラスによって実装された場合、コントロールの状態が変化したことを 
     247        /// ASP.NET アプリケーションに通知するために、サーバー コントロールにシグナルを送信します。 
     248        /// </summary> 
     249        protected virtual void RaisePostDataChangedEvent() 
     250        { 
     251            OnValueChanged(EventArgs.Empty); 
     252        } 
     253 
     254        /// <summary> 
     255        /// サーバー コントロールの子コントロール (リテラルおよびサーバーの両方) 
     256        /// を保持する新しい <see cref="ControlCollection" /> オブジェクトを作成します。 
     257        /// </summary> 
     258        /// <returns> 
     259        /// 現在のサーバー コントロールの子サーバー コントロールを格納する 
     260        /// <see cref="ControlCollection" /> オブジェクト。 
     261        /// </returns> 
     262        protected override ControlCollection CreateControlCollection() 
     263        { 
     264            return new EmptyControlCollection(this); 
     265        } 
     266 
     267        /// <summary> 
     268        /// <see cref="ValueChanged"/> イベントを呼び出します。 
     269        /// </summary> 
     270        /// <param name="e">イベント データを格納している <see cref="EventArgs"/>。</param> 
     271        protected virtual void OnValueChanged(EventArgs e) 
     272        { 
     273            EventHandler valueChangedHandler = (EventHandler)Events[EventValueChangedKey]; 
     274            if (valueChangedHandler == null) 
     275            { 
     276                return; 
     277            } 
     278 
     279            valueChangedHandler(this, e); 
     280        } 
     281 
     282        /// <summary> 
     283        /// <see cref="Control.PreRender" /> イベントを発生させます。 
     284        /// </summary> 
     285        /// <param name="e">イベント データを格納している <see cref="EventArgs" /> オブジェクト。</param> 
     286        protected override void OnPreRender(EventArgs e) 
     287        { 
     288            if (Page != null) 
     289            { 
     290                // ReSharper disable once ExceptionNotDocumented 
     291                Page.RegisterRequiresPostBack(this); 
     292            } 
     293 
     294            // 親を呼び出す 
     295            base.OnPreRender(e); 
     296        } 
    95297    } 
    96298} 
詳しい使い方は TracChangeset を参照してください。