チェンジセット 1670 (default)


以下の違いを無視:
日時:
2024/08/29 1:16:15 (6週前)
更新者:
hizuya@…
ログメッセージ:
  • ダイアログを直接閉じるための Dialog.Close を追加。
  • FormView を配置したダイアログのテストページを追加 (やや中途半端な実装)。
場所:
framework/trunk
ファイル:
3個の追加
9個の更新

凡例:

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

    r1653 r1670  
    2727            <sff:Dialog ID="Dialog101" runat="server" 
    2828                Width="800" 
    29                 Height="720" 
     29                Height="900" 
    3030                OnResultChanged="Dialog101_ResultChanged" /> 
    3131 
     
    4646            <sff:Dialog ID="Dialog102" runat="server" 
    4747                Width="800" 
    48                 Height="720" 
     48                Height="900" 
    4949                PermitPostBackAtClosed="false" 
    5050                OnResultChanged="Dialog102_ResultChanged" /> 
     
    6060            <sff:Dialog ID="Dialog103" runat="server" 
    6161                Width="800" 
    62                 Height="720" 
     62                Height="900" 
    6363                MaxWidth="1000" 
    6464                CloseOnEscape="False" 
     
    7878            <sff:Dialog ID="Dialog201" runat="server" 
    7979                Width="800" 
    80                 Height="720" 
     80                Height="900" 
    8181                OnResultChanged="Dialog201_ResultChanged" /> 
    8282 
     
    100100            <sff:Dialog ID="Dialog301" runat="server" 
    101101                Width="800" 
    102                 Height="720" 
     102                Height="900" 
    103103                OnResultChanged="Dialog301_ResultChanged" /> 
    104104 
     
    120120            <sff:Dialog ID="Dialog401" runat="server" 
    121121                Width="800" 
    122                 Height="720" 
     122                Height="900" 
    123123                OnResultChanged="Dialog401_ResultChanged" /> 
    124124 
     
    151151            <sff:Dialog ID="Dialog601" runat="server" 
    152152                Width="800" 
    153                 Height="720" 
     153                Height="900" 
    154154                OnResultChanged="Dialog601_ResultChanged" /> 
    155155 
     
    172172            <sff:Dialog ID="Dialog701" runat="server" 
    173173                Width="800" 
    174                 Height="720" 
     174                Height="900" 
    175175                OnResultChanged="Dialog701_ResultChanged" /> 
    176176 
     
    195195            <sff:Dialog ID="Dialog801" runat="server" 
    196196                Width="800" 
    197                 Height="720" 
     197                Height="900" 
    198198                OnResultChanged="Dialog801_ResultChanged" /> 
    199199 
     
    216216            <sff:Dialog ID="Dialog901" runat="server" 
    217217                Width="800" 
    218                 Height="720" 
     218                Height="900" 
    219219                OnResultChanged="Dialog901_ResultChanged" /> 
    220220 
     
    248248            <sff:Dialog ID="Dialog1001" runat="server" 
    249249                Width="800" 
    250                 Height="720" 
     250                Height="900" 
    251251                OnResultChanged="Dialog1001_ResultChanged" /> 
    252252            <asp:Button ID="Button1001" runat="server" 
     
    260260            <sff:Dialog ID="Dialog1101" runat="server" 
    261261                Width="800" 
    262                 Height="720" 
     262                Height="900" 
    263263                OnResultChanged="Dialog1101_ResultChanged" /> 
    264264            <asp:Button ID="Button1101" runat="server" 
     
    271271            <sff:Dialog ID="Dialog1201" runat="server" 
    272272                Width="800" 
    273                 Height="720" 
     273                Height="900" 
    274274                OnResultChanged="Dialog1201_ResultChanged" /> 
    275275 
     
    288288            Result: <asp:Label ID="DialogResultLabel1201" runat="server" /> 
    289289 
     290            <h2>DialogPageNestedFormViewPage</h2> 
     291 
     292            <sff:Dialog ID="Dialog2001" runat="server" 
     293                Width="800" 
     294                Height="900" 
     295                OnResultChanged="Dialog2001_ResultChanged" /> 
     296 
     297            <sff:DialogOpenButton ID="DialogOpenButton2001" runat="server" 
     298                DialogControl="Dialog2001" 
     299                Text="Open(A)" 
     300                NavigateUrl="~/UI/WebControls/DialogPageNestedFormViewPage.aspx?id=Key1" 
     301                DialogControlTitle="Dialog Title A"/> 
     302            Result: <asp:Label ID="DialogResultLabel2001" runat="server" /> 
     303 
    290304        </div> 
    291305    </form> 
  • framework/trunk/WebApplication/UI/WebControls/DialogPage.aspx.cs

    r1653 r1670  
    117117            DialogResultLabel1101.Text = Dialog1101.Result; 
    118118            DialogResultLabel1201.Text = Dialog1201.Result; 
     119            DialogResultLabel2001.Text = Dialog2001.Result; 
    119120        } 
    120121 
     
    299300        { 
    300301            DialogResultLabel1201.Font.Bold = true; 
     302        } 
     303 
     304        /// <summary> 
     305        /// ダイアログの戻り値が変更されたときに呼び出されるイベントハンドラです。 
     306        /// </summary> 
     307        /// <param name="sender"> 
     308        /// イベントの発生元。 
     309        /// </param> 
     310        /// <param name="e"> 
     311        /// イベント情報。 
     312        /// </param> 
     313        protected void Dialog2001_ResultChanged(object sender, EventArgs e) 
     314        { 
     315            DialogResultLabel2001.Font.Bold = true; 
    301316        } 
    302317 
  • framework/trunk/WebApplication/UI/WebControls/DialogPage.aspx.designer.cs

    r1653 r1670  
    399399        /// </remarks> 
    400400        protected global::System.Web.UI.WebControls.Label DialogResultLabel1201; 
     401         
     402        /// <summary> 
     403        /// Dialog2001 コントロール。 
     404        /// </summary> 
     405        /// <remarks> 
     406        /// 自動生成されたフィールド。 
     407        /// 変更するには、フィールドの宣言をデザイナー ファイルから分離コード ファイルに移動します。 
     408        /// </remarks> 
     409        protected global::FCSoft.SilverFrost.Framework.Web.UI.WebControls.Dialog Dialog2001; 
     410         
     411        /// <summary> 
     412        /// DialogOpenButton2001 コントロール。 
     413        /// </summary> 
     414        /// <remarks> 
     415        /// 自動生成されたフィールド。 
     416        /// 変更するには、フィールドの宣言をデザイナー ファイルから分離コード ファイルに移動します。 
     417        /// </remarks> 
     418        protected global::FCSoft.SilverFrost.Framework.Web.UI.WebControls.DialogOpenButton DialogOpenButton2001; 
     419         
     420        /// <summary> 
     421        /// DialogResultLabel2001 コントロール。 
     422        /// </summary> 
     423        /// <remarks> 
     424        /// 自動生成されたフィールド。 
     425        /// 変更するには、フィールドの宣言をデザイナー ファイルから分離コード ファイルに移動します。 
     426        /// </remarks> 
     427        protected global::System.Web.UI.WebControls.Label DialogResultLabel2001; 
    401428    } 
    402429} 
  • framework/trunk/WebApplication/UI/WebControls/DialogPageNestedPage.aspx

    r1478 r1670  
    9999            <hr /> 
    100100 
    101             <h2>Close by DialogCloser</h2> 
     101            <h2>Close by DialogCloser.Close()</h2> 
    102102 
    103103            <asp:TextBox ID="TextBox201" runat="server" /> 
     
    125125                Result="Closed by 'Close without PostBack' DialogCloseButton" /> 
    126126 
     127            <h2>Close by Dialog.Close()</h2> 
     128 
     129            <asp:TextBox ID="TextBox311" runat="server" /> 
     130 
     131            <asp:Button ID="Button311" runat="server" 
     132                Text="Close with PostBack" 
     133                OnClick="Button311_OnClick" /> 
     134 
     135            <asp:Button ID="Button312" runat="server" 
     136                Text="Close without PostBack" 
     137                OnClick="Button312_OnClick" /> 
     138 
    127139            <h2>DialogMethod</h2> 
    128140 
  • framework/trunk/WebApplication/UI/WebControls/DialogPageNestedPage.aspx.cs

    r1478 r1670  
    151151 
    152152        /// <summary> 
     153        /// Close ボタンがクリックされたときに呼び出されるイベントハンドラです。 
     154        /// </summary> 
     155        /// <param name="sender"> 
     156        /// イベントの発生元。 
     157        /// </param> 
     158        /// <param name="e"> 
     159        /// イベント情報。 
     160        /// </param> 
     161        protected void Button311_OnClick(object sender, EventArgs e) 
     162        { 
     163            Dialog.Close(TextBox311.Text, true); 
     164        } 
     165 
     166        /// <summary> 
     167        /// Close ボタンがクリックされたときに呼び出されるイベントハンドラです。 
     168        /// </summary> 
     169        /// <param name="sender"> 
     170        /// イベントの発生元。 
     171        /// </param> 
     172        /// <param name="e"> 
     173        /// イベント情報。 
     174        /// </param> 
     175        protected void Button312_OnClick(object sender, EventArgs e) 
     176        { 
     177            Dialog.Close(TextBox311.Text, false); 
     178        } 
     179 
     180        /// <summary> 
    153181        /// ダイアログの戻り値が変更されたときに呼び出されるイベントハンドラです。 
    154182        /// </summary> 
  • framework/trunk/WebApplication/UI/WebControls/DialogPageNestedPage.aspx.designer.cs

    r1478 r1670  
    248248         
    249249        /// <summary> 
     250        /// TextBox311 コントロール。 
     251        /// </summary> 
     252        /// <remarks> 
     253        /// 自動生成されたフィールド。 
     254        /// 変更するには、フィールドの宣言をデザイナー ファイルから分離コード ファイルに移動します。 
     255        /// </remarks> 
     256        protected global::System.Web.UI.WebControls.TextBox TextBox311; 
     257         
     258        /// <summary> 
     259        /// Button311 コントロール。 
     260        /// </summary> 
     261        /// <remarks> 
     262        /// 自動生成されたフィールド。 
     263        /// 変更するには、フィールドの宣言をデザイナー ファイルから分離コード ファイルに移動します。 
     264        /// </remarks> 
     265        protected global::System.Web.UI.WebControls.Button Button311; 
     266         
     267        /// <summary> 
     268        /// Button312 コントロール。 
     269        /// </summary> 
     270        /// <remarks> 
     271        /// 自動生成されたフィールド。 
     272        /// 変更するには、フィールドの宣言をデザイナー ファイルから分離コード ファイルに移動します。 
     273        /// </remarks> 
     274        protected global::System.Web.UI.WebControls.Button Button312; 
     275         
     276        /// <summary> 
    250277        /// TextBox401 コントロール。 
    251278        /// </summary> 
  • framework/trunk/WebApplication/WebApplication.csproj

    r1665 r1670  
    7575    <Content Include="UI\WebControls\ControlPropertyLinkageConnectorPage.aspx" /> 
    7676    <Content Include="UI\WebControls\DefaultButtonSetterUnderNestedNamingContainerPage.aspx" /> 
     77    <Content Include="UI\WebControls\DialogPageNestedFormViewPage.aspx" /> 
    7778    <Content Include="UI\WebControls\FileUploadPage.aspx" /> 
    7879    <Content Include="UI\WebControls\FormViewBindUserControl1.ascx" /> 
     
    330331    <Compile Include="UI\WebControls\DefaultButtonSetterUnderNestedNamingContainerPage.aspx.designer.cs"> 
    331332      <DependentUpon>DefaultButtonSetterUnderNestedNamingContainerPage.aspx</DependentUpon> 
     333    </Compile> 
     334    <Compile Include="UI\WebControls\DialogPageNestedFormViewPage.aspx.cs"> 
     335      <DependentUpon>DialogPageNestedFormViewPage.aspx</DependentUpon> 
     336      <SubType>ASPXCodeBehind</SubType> 
     337    </Compile> 
     338    <Compile Include="UI\WebControls\DialogPageNestedFormViewPage.aspx.designer.cs"> 
     339      <DependentUpon>DialogPageNestedFormViewPage.aspx</DependentUpon> 
    332340    </Compile> 
    333341    <Compile Include="UI\WebControls\DialogPageNestedPage.aspx.cs"> 
  • framework/trunk/WebLibrary/Sources/UI/WebControls/Dialog.cs

    r1653 r1670  
    3131    using System.Net; 
    3232    using System.Text; 
     33    using System.Web; 
    3334    using System.Web.UI; 
    3435    using System.Web.UI.WebControls; 
     
    731732                    @"this.iframedialog('option', 'title', '" + ClientScriptUtility.EscapeStringForSingleQuotes(title) + @"');"), 
    732733                true); 
     734        } 
     735 
     736        /// <summary> 
     737        /// 現在のページがダイアログの場合に、そのダイアログをクローズします。 
     738        /// </summary> 
     739        /// <param name="result">ダイアログの呼び出し元に返す文字列。</param> 
     740        /// <param name="requirePostBackAtClosed"> 
     741        /// 閉じたときにダイアログコントロールでポストバックを発生させるように要求する場合は <see langword="true"/>。 
     742        /// それ以外の場合は <see langword="false"/>。 
     743        /// </param> 
     744        public static void Close(string result, bool requirePostBackAtClosed) 
     745        { 
     746            HttpContext context = HttpContext.Current; 
     747            if (context == null) 
     748            { 
     749                return; 
     750            } 
     751 
     752            DialogCloser.Close(context, result, requirePostBackAtClosed); 
    733753        } 
    734754 
  • framework/trunk/WebLibrary/Sources/UI/WebControls/DialogCloser.cs

    r864 r1670  
    2525    using System; 
    2626    using System.ComponentModel; 
     27    using System.Web; 
    2728    using System.Web.UI; 
    2829    using System.Web.UI.HtmlControls; 
     
    145146 
    146147        /// <summary> 
     148        /// ダイアログとしてクローズします。 
     149        /// </summary> 
     150        /// <param name="context">HTTP コンテキスト。</param> 
     151        /// <param name="result">ダイアログの呼び出し元に返す文字列。</param> 
     152        /// <param name="requirePostBackAtClosed"> 
     153        /// 閉じたときにダイアログコントロールでポストバックを発生させるように要求する場合は <see langword="true"/>。 
     154        /// それ以外の場合は <see langword="false"/>。 
     155        /// </param> 
     156        internal static void Close( 
     157            HttpContext context, 
     158            string result, 
     159            bool requirePostBackAtClosed) 
     160        { 
     161            context.Server.Transfer( 
     162                new ClosePage( 
     163                    context.Request.AppRelativeCurrentExecutionFilePath, 
     164                    result, 
     165                    requirePostBackAtClosed), 
     166                false); 
     167        } 
     168 
     169        /// <summary> 
    147170        /// クライアント側で表示する前にポストバック イベントを生成するためのクライアント スクリプトを登録します。 
    148171        /// </summary> 
     
    157180            if (closeOnRender) 
    158181            { 
    159                 Context.Server.Transfer(new ClosePage(this), false); 
     182                Close(Context, Result, RequirePostBackAtClosed); 
    160183            } 
    161184        } 
     
    167190        /// </summary> 
    168191        private sealed class ClosePage : 
     192            // ReSharper disable once RedundantNameQualifier 
    169193            System.Web.UI.Page 
    170194        { 
    171195            /// <summary> 
    172             /// 対象の <see cref="DialogCloser"/>。 
    173             /// </summary> 
    174             private readonly DialogCloser dialogCloser; 
     196            /// ダイアログの呼び出し元に返す文字列。 
     197            /// </summary> 
     198            private readonly string result; 
     199 
     200            /// <summary> 
     201            /// 閉じたときにダイアログコントロールでポストバックを発生させるように要求するかどうか。 
     202            /// </summary> 
     203            private readonly bool requirePostBackAtClosed; 
    175204 
    176205 
     
    178207            /// インスタンスを作成します。 
    179208            /// </summary> 
    180             /// <param name="dialogCloser"> 
    181             /// 対象の <see cref="DialogCloser"/>。 
     209            /// <param name="appRelativeVirtualPath">アプリケーション相対の仮想ディレクトリのパス。</param> 
     210            /// <param name="result">ダイアログの呼び出し元に返す文字列。</param> 
     211            /// <param name="requirePostBackAtClosed"> 
     212            /// 閉じたときにダイアログコントロールでポストバックを発生させるように要求する場合は <see langword="true"/>。 
     213            /// それ以外の場合は <see langword="false"/>。 
    182214            /// </param> 
    183             internal ClosePage(DialogCloser dialogCloser) 
    184             { 
    185                 this.dialogCloser = dialogCloser; 
    186  
    187                 AppRelativeVirtualPath = dialogCloser.Page.Request.AppRelativeCurrentExecutionFilePath; 
     215            internal ClosePage( 
     216                string appRelativeVirtualPath, 
     217                string result, 
     218                bool requirePostBackAtClosed) 
     219            { 
     220                this.result = result; 
     221                this.requirePostBackAtClosed = requirePostBackAtClosed; 
     222 
     223                AppRelativeVirtualPath = appRelativeVirtualPath; 
    188224            } 
    189225 
     
    235271                    Dialog.CreateDialogScript(@" 
    236272    var self = this; 
    237     this.iframedialog('option', 'requirePostBackAtClosed', " + (dialogCloser.RequirePostBackAtClosed ? "true" : "false") + @"); 
    238     this.iframedialog('option', 'resultValue', '" + ClientScriptUtility.EscapeStringForSingleQuotes(dialogCloser.Result) + @"'); 
     273    this.iframedialog('option', 'requirePostBackAtClosed', " + (requirePostBackAtClosed ? "true" : "false") + @"); 
     274    this.iframedialog('option', 'resultValue', '" + ClientScriptUtility.EscapeStringForSingleQuotes(result ?? string.Empty) + @"'); 
    239275    setTimeout(function() { self.iframedialog('close'); }, 1); 
    240276"), 
詳しい使い方は TracChangeset を参照してください。