チェンジセット 1611 (default)
- 日時:
- 2023/09/14 3:48:12 (13ヵ月前)
- 場所:
- framework/trunk
- ファイル:
-
- 11個の更新
凡例:
- 未変更
- 追加
- 削除
-
framework/trunk/WebApplication/UI/WebControls/FormViewBindPage.aspx
r1608 r1611 182 182 <div> 183 183 DataTypeNames = [<%# ConvertToString(Eval("DataTypeNames")) %>] 184 </div> 185 186 <%-- DataType --%> 187 <sff:ObjectDataSource ID="DataTypeViewDataSource" runat="server" 188 TypeName="FCSoft.SilverFrost.Framework.Web.UI.WebControls.FormViewBindPage" 189 AutoDetectDataObjectTypeName="True" 190 SelectMethod="ListDataTypes"> 191 <SelectParameters> 192 <sff:BoundParameter Name="names" DataField="DataTypeNames" DbType="Object"/> 193 </SelectParameters> 194 </sff:ObjectDataSource> 195 <div> 196 <asp:GridView ID="DataTypeViewGridView" runat="server" 197 DataSourceID="DataTypeViewDataSource" 198 AutoGenerateColumns="True"/> 184 199 </div> 185 200 -
framework/trunk/WebApplication/UI/WebControls/FormViewBindPage.aspx.cs
r1610 r1611 28 28 using System.Collections.Specialized; 29 29 using System.Diagnostics; 30 using System.Linq; 30 31 using System.Text; 31 32 using System.Web.UI.WebControls; … … 122 123 /// データの一覧。 123 124 /// </returns> 124 public static IList< ModeItem> ListMode()125 public static IList<DataItem> ListMode() 125 126 { 126 127 return new[] 127 128 { 128 new ModeItem129 new DataItem 129 130 { 130 131 Id = null, 131 132 Name = null, 132 133 }, 133 new ModeItem134 new DataItem 134 135 { 135 136 Id = 0, 136 137 Name = "Mode-0", 137 138 }, 138 new ModeItem139 new DataItem 139 140 { 140 141 Id = 1, 141 142 Name = "Mode-1", 142 143 }, 143 new ModeItem144 new DataItem 144 145 { 145 146 Id = 2, 146 147 Name = "Mode-2", 147 148 }, 148 new ModeItem149 new DataItem 149 150 { 150 151 Id = 3, 151 152 Name = "Mode-3", 152 153 }, 153 new ModeItem154 new DataItem 154 155 { 155 156 Id = 4, … … 157 158 }, 158 159 }; 160 } 161 162 /// <summary> 163 /// データタイプ表示に使用する <see cref="ObjectDataSource"/> 164 /// のためにデータを取得します。 165 /// </summary> 166 /// <param name="names">データタイプの一覧。</param> 167 /// <returns> 168 /// データの一覧。 169 /// </returns> 170 public static IList<DataItem> ListDataTypes(string[] names) 171 { 172 return names.Select((name, index) => new DataItem { Id = index, Name = name }).ToList(); 159 173 } 160 174 … … 971 985 972 986 /// <summary> 973 /// モード情報を表すクラスです。974 /// </summary> 975 public class ModeItem987 /// 汎用データを表すクラスです。 988 /// </summary> 989 public class DataItem 976 990 { 977 991 /// <summary> … … 991 1005 /// インスタンスを作成します。 992 1006 /// </summary> 993 public ModeItem()1007 public DataItem() 994 1008 { 995 1009 // AVOID -
framework/trunk/WebApplication/UI/WebControls/TemplateFieldPage.aspx
r1606 r1611 69 69 HeaderText="template"> 70 70 <ItemTemplate> 71 <sff:DataBindingContextHolder runat="server"> 72 Link: 73 <sff:HyperLink runat="server" 74 NavigateUrl="~/UI/WebControls/HyperLinkPageTarget.aspx" 75 NavigateMethod='<%# Eval("name") %>' 76 Text="HyperLink"> 77 <NavigateParameters> 78 <sff:BoundParameter Name="ID" DataField="system_type_id" /> 79 <sff:BoundParameter Name="Name" DataField="name" /> 80 </NavigateParameters> 81 </sff:HyperLink> 82 </sff:DataBindingContextHolder> 71 Link: 72 <sff:HyperLink runat="server" 73 NavigateUrl="~/UI/WebControls/HyperLinkPageTarget.aspx" 74 NavigateMethod='<%# Eval("name") %>' 75 Text="HyperLink"> 76 <NavigateParameters> 77 <sff:BoundParameter Name="ID" DataField="system_type_id" /> 78 <sff:BoundParameter Name="Name" DataField="name" /> 79 </NavigateParameters> 80 </sff:HyperLink> 83 81 </ItemTemplate> 84 82 </sff:TemplateField> -
framework/trunk/WebLibrary/Sources/UI/WebControls/BoundParameter.cs
r1605 r1611 54 54 private const string DataFieldKey = "DataField"; 55 55 56 57 /// <summary> 58 /// データフィールドデスクリプタ。 59 /// </summary> 60 private PropertyDescriptor dataFieldDesc; 56 /// <summary> 57 /// <see cref="DataFormatString"/> プロパティ用のキー。 58 /// </summary> 59 private const string DataFormatStringKey = "DataFormatString"; 60 61 62 /// <summary> 63 /// バインドしたデータ。 64 /// </summary> 65 private object boundData; 66 67 /// <summary> 68 /// バインドしているかどうか。 69 /// </summary> 70 private bool alreadyBound; 61 71 62 72 … … 155 165 156 166 ViewState[DataFieldKey] = value; 157 dataFieldDesc = null;158 167 OnParameterChanged(); 159 168 } 160 169 } 161 170 171 /// <summary> 172 /// パラメータに使用する値の書式を指定する文字列を取得または設定します。 173 /// </summary> 174 /// <value> 175 /// パラメータに使用する値の書式を指定する文字列。 176 /// </value> 177 [Themeable(false)] 178 [DefaultValue("")] 179 [WebCategory("Parameter")] 180 [WebDescription("Description_DataFormatString")] 181 public virtual string DataFormatString 182 { 183 get 184 { 185 return (string)(ViewState[DataFormatStringKey] ?? string.Empty); 186 } 187 188 set 189 { 190 if (DataFormatString == value) 191 { 192 return; 193 } 194 195 ViewState[DataFormatStringKey] = value; 196 OnParameterChanged(); 197 } 198 } 199 200 201 /// <summary> 202 /// パラメータに対してデータをバインドします。 203 /// </summary> 204 /// <param name="container">評価に使用するオブジェクト参照。</param> 205 /// <param name="parameters">パラメータのコレクション。</param> 206 internal static void DataBind(object container, ParameterCollection parameters) 207 { 208 if (parameters == null || parameters.Count == 0) 209 { 210 return; 211 } 212 213 foreach (Parameter parameter in parameters) 214 { 215 BoundParameter boundParameter = parameter as BoundParameter; 216 if (boundParameter != null) 217 { 218 boundParameter.DataBind(container); 219 } 220 } 221 } 222 223 /// <summary>データ ソース ビューの、以前保存したビューステートを復元します。</summary> 224 /// <param name="savedState">復元する <see cref="T:System.Web.UI.WebControls.Parameter" /> の状態を表す <see cref="T:System.Object" />。</param> 225 protected override void LoadViewState(object savedState) 226 { 227 if (savedState == null) 228 { 229 // 親を呼び出す 230 base.LoadViewState(null); 231 return; 232 } 233 234 Triplet triplet = (Triplet)savedState; 235 236 boundData = triplet.Second; 237 alreadyBound = (bool)triplet.Third; 238 239 // 親を呼び出す 240 base.LoadViewState(triplet.First); 241 } 242 243 /// <summary> 244 /// ページがサーバーにポストバックされた時間以降に発生した、 245 /// <see cref="BoundParameter" /> オブジェクトのビューステートへの変更を保存します。 246 /// </summary> 247 /// <returns> 248 /// <see cref="BoundParameter" /> のビューステートへの変更を格納する <see cref="object" />。 249 /// オブジェクトに関連付けられているビューステートがない場合、メソッドは <see langword="null"/> を返します。 250 /// </returns> 251 protected override object SaveViewState() 252 { 253 // 親を呼び出す 254 object baseViewState = base.SaveViewState(); 255 256 // バインドされておらず、親クラスのビューステートも無い場合 257 if (!alreadyBound && baseViewState == null) 258 { 259 return null; 260 } 261 262 return new Triplet(baseViewState, boundData, alreadyBound); 263 } 162 264 163 265 /// <summary> … … 197 299 } 198 300 301 if (alreadyBound) 302 { 303 return boundData; 304 } 305 306 // 以降は、DataBind() が呼ばれていない場合用 (主に HyperLinkField と BoundParameter に対応していないコントロール) 199 307 string dataField = DataField; 200 308 if (string.IsNullOrEmpty(dataField)) … … 209 317 } 210 318 211 if (dataFieldDesc == null) 212 { 213 dataFieldDesc = TypeDescriptor.GetProperties(dataItem).Find(dataField, true); 214 if (dataFieldDesc == null) 215 { 216 throw new HttpException(Utility.Format( 217 Resources.Http_DataSourceFieldNotFound, 218 dataField)); 219 } 220 } 221 222 return dataFieldDesc.GetValue(dataItem); 319 return Eval(dataItem, dataField); 320 } 321 322 /// <summary> 323 /// データをバインドします。 324 /// </summary> 325 /// <param name="container">評価に使用するオブジェクト参照。</param> 326 private void DataBind(object container) 327 { 328 string dataField = DataField; 329 if (string.IsNullOrEmpty(dataField)) 330 { 331 return; 332 } 333 334 boundData = Eval(container, dataField); 335 alreadyBound = true; 336 SetDirty(); 337 } 338 339 /// <summary> 340 /// 式を評価して値を返します。 341 /// </summary> 342 /// <param name="container">評価に使用するオブジェクト参照。</param> 343 /// <param name="expression">評価式。</param> 344 /// <returns> 345 /// 評価結果。 346 /// </returns> 347 private object Eval(object container, string expression) 348 { 349 string dataFormatString = DataFormatString; 350 return string.IsNullOrEmpty(dataFormatString) 351 ? DataBinder.Eval(container, expression) 352 : DataBinder.Eval(container, expression, DataFormatString); 223 353 } 224 354 } -
framework/trunk/WebLibrary/Sources/UI/WebControls/CommonDbDataSource.cs
r1337 r1611 845 845 846 846 /// <summary> 847 /// データ ソースをサーバー コントロールの子コントロールにバインドします。 848 /// </summary> 849 protected override void DataBindChildren() 850 { 851 // 親を呼び出す 852 base.DataBindChildren(); 853 854 // バインドが必要なパラメータにデータをバインド 855 BoundParameter.DataBind(Page.GetDataItem(), SelectParameters); 856 } 857 858 /// <summary> 847 859 /// <see cref="CommonDbDataSource"/> インターフェイスに関連付けられた 848 860 /// ビュー オブジェクトのリストを表す名前のコレクションを取得します。 -
framework/trunk/WebLibrary/Sources/UI/WebControls/DialogOpenButton.cs
r1200 r1611 292 292 293 293 /// <summary> 294 /// コントロールへの変更の追跡および保存の開始点を、 295 /// コントロールのビューステートの一部としてマークします。 296 /// </summary> 297 protected override void TrackViewState() 298 { 299 // 親を呼び出す 300 base.TrackViewState(); 301 302 if (navigateParameters != null) 303 { 304 ((IStateManager)navigateParameters).TrackViewState(); 305 } 306 } 307 308 /// <summary> 309 /// <see cref="HyperLink"/> コントロールの保存された状態を読み込みます。 310 /// </summary> 311 /// <param name="savedState"> 312 /// <see cref="HyperLink"/> の保存された状態を格納している 313 /// <see cref="object"/>。 314 /// </param> 315 protected override void LoadViewState(object savedState) 316 { 317 if (savedState == null) 318 { 319 return; 320 } 321 322 Pair state = (Pair)savedState; 323 324 // 親を呼び出す 325 base.LoadViewState(state.First); 326 327 if (state.Second != null) 328 { 329 ((IStateManager)NavigateParameters).LoadViewState(state.Second); 330 } 331 } 332 333 /// <summary> 334 /// <see cref="HyperLink"/> コントロールの状態を格納します。 335 /// </summary> 336 /// <returns> 337 /// <see cref="HyperLink"/> の保存された状態を格納しているオブジェクト。 338 /// </returns> 339 protected override object SaveViewState() 340 { 341 // 親を呼び出す 342 Pair state = new Pair 343 { 344 First = base.SaveViewState(), 345 }; 346 347 if (navigateParameters != null) 348 { 349 state.Second = ((IStateManager)navigateParameters).SaveViewState(); 350 } 351 352 if (state.First == null && state.Second == null) 353 { 354 return null; 355 } 356 357 return state; 358 } 359 360 /// <summary> 361 /// データ ソースをサーバー コントロールの子コントロールにバインドします。 362 /// </summary> 363 protected override void DataBindChildren() 364 { 365 // 親を呼び出す 366 base.DataBindChildren(); 367 368 // バインドが必要なパラメータにデータをバインド 369 BoundParameter.DataBind(Page.GetDataItem(), navigateParameters); 370 } 371 372 /// <summary> 294 373 /// クライアント側で表示する前にポストバック イベントを生成するためのクライアント スクリプトを登録します。 295 374 /// </summary> -
framework/trunk/WebLibrary/Sources/UI/WebControls/Forwarder.cs
r864 r1611 282 282 return state; 283 283 } 284 285 /// <summary> 286 /// データ ソースをサーバー コントロールの子コントロールにバインドします。 287 /// </summary> 288 protected override void DataBindChildren() 289 { 290 // 親を呼び出す 291 base.DataBindChildren(); 292 293 // バインドが必要なパラメータにデータをバインド 294 BoundParameter.DataBind(Page.GetDataItem(), navigateParameters); 295 } 284 296 } 285 297 } -
framework/trunk/WebLibrary/Sources/UI/WebControls/HyperLink.cs
r1200 r1611 355 355 356 356 /// <summary> 357 /// データ ソースをサーバー コントロールの子コントロールにバインドします。 358 /// </summary> 359 protected override void DataBindChildren() 360 { 361 // 親を呼び出す 362 base.DataBindChildren(); 363 364 // バインドが必要なパラメータにデータをバインド 365 BoundParameter.DataBind(Page.GetDataItem(), navigateParameters); 366 } 367 368 /// <summary> 357 369 /// ASP.NET ページ フレームワークによって呼び出され、 358 370 /// コンポジション ベースの実装を使用するサーバー コントロールに、 … … 390 402 /// </summary> 391 403 /// <param name="writer"> 392 /// クライアントで表示するための出力ストリーム。 404 /// クライアントで表示するための出力ストリーム。 393 405 /// </param> 394 406 protected override void AddAttributesToRender(HtmlTextWriter writer) … … 446 458 /// </summary> 447 459 /// <param name="writer"> 448 /// クライアントで表示するための出力ストリーム。 460 /// クライアントで表示するための出力ストリーム。 449 461 /// </param> 450 462 protected override void RenderContents(HtmlTextWriter writer) … … 518 530 private sealed class ContentContainer : 519 531 Control, 520 INamingContainer 532 INamingContainer 521 533 { 522 534 /// <summary> -
framework/trunk/WebLibrary/Sources/UI/WebControls/LocalizedMessage.cs
r864 r1611 53 53 private bool visible; 54 54 55 55 56 56 /// <summary> 57 57 /// インスタンスを作成します。 … … 204 204 205 205 /// <summary> 206 /// データ ソースをサーバー コントロールの子コントロールにバインドします。 207 /// </summary> 208 protected override void DataBindChildren() 209 { 210 // 親を呼び出す 211 base.DataBindChildren(); 212 213 // バインドが必要なパラメータにデータをバインド 214 BoundParameter.DataBind(Page.GetDataItem(), textParameters); 215 } 216 217 /// <summary> 206 218 /// 提供されたクライアントに表示される内容を書き込む 207 219 /// <see cref="HtmlTextWriter"/> オブジェクトに、サーバー コントロールの内容を送信します。 -
framework/trunk/WebLibrary/Sources/UI/WebControls/ObjectDataSource.cs
r1608 r1611 109 109 110 110 /// <summary> 111 /// データ ソースをサーバー コントロールの子コントロールにバインドします。 112 /// </summary> 113 protected override void DataBindChildren() 114 { 115 // 親を呼び出す 116 base.DataBindChildren(); 117 118 // バインドが必要なパラメータにデータをバインド 119 object dataItem = Page.GetDataItem(); 120 BoundParameter.DataBind(dataItem, SelectParameters); 121 BoundParameter.DataBind(dataItem, InsertParameters); 122 BoundParameter.DataBind(dataItem, UpdateParameters); 123 BoundParameter.DataBind(dataItem, DeleteParameters); 124 BoundParameter.DataBind(dataItem, FilterParameters); 125 } 126 127 /// <summary> 111 128 /// <see cref="ParameterCollection"/> から名前のハッシュセットを取得します。 112 129 /// </summary> -
framework/trunk/WebLibrary/Sources/UI/WebControls/TinyMCE.cs
r1586 r1611 468 468 469 469 return state; 470 } 471 472 /// <summary> 473 /// データ ソースをサーバー コントロールの子コントロールにバインドします。 474 /// </summary> 475 protected override void DataBindChildren() 476 { 477 // 親を呼び出す 478 base.DataBindChildren(); 479 480 // バインドが必要なパラメータにデータをバインド 481 BoundParameter.DataBind(Page.GetDataItem(), initializeParameters); 470 482 } 471 483
※ 詳しい使い方は
TracChangeset を参照してください。