チェンジセット 1625 (default)


以下の違いを無視:
日時:
2023/11/21 18:10:39 (11ヵ月前)
更新者:
hizuya@…
ログメッセージ:
  • BoundParameter を使用しておらず、バインドコンテナが設定されていない状態で DataBind メソッドを呼ばれた場合に例外が発生する問題を修正。
場所:
framework/trunk
ファイル:
5個の追加
9個の更新

凡例:

未変更
追加
削除
  • framework/trunk/WebApplication/WebApplication.csproj

    r1619 r1625  
    6666    <Content Include="UI\Database\SqlErrorPage.aspx" /> 
    6767    <Content Include="UI\UpdatePanelPage.aspx" /> 
     68    <Content Include="UI\WebControls\BoundParameterPage.aspx" /> 
    6869    <Content Include="UI\WebControls\ControlPropertyLinkageConnectorPage.aspx" /> 
    6970    <Content Include="UI\WebControls\FormViewBindUserControl1.ascx" /> 
     
    239240    <Compile Include="UI\WebControls\AutocompleteTextBoxPage.aspx.designer.cs"> 
    240241      <DependentUpon>AutocompleteTextBoxPage.aspx</DependentUpon> 
     242    </Compile> 
     243    <Compile Include="UI\WebControls\BoundParameterPage.aspx.cs"> 
     244      <DependentUpon>BoundParameterPage.aspx</DependentUpon> 
     245      <SubType>ASPXCodeBehind</SubType> 
     246    </Compile> 
     247    <Compile Include="UI\WebControls\BoundParameterPage.aspx.designer.cs"> 
     248      <DependentUpon>BoundParameterPage.aspx</DependentUpon> 
    241249    </Compile> 
    242250    <Compile Include="UI\WebControls\CheckBoxFieldPage.aspx.cs"> 
     
    574582    <None Include="App_Data\SqlTemplates\UI\Database\BasicSelectPage.st" /> 
    575583    <None Include="App_Data\SqlTemplates\UI\Database\SqlErrorPage.st" /> 
     584    <Content Include="App_Data\SqlTemplates\UI\WebControls\BoundParameterPage.st" /> 
    576585    <None Include="App_Data\SqlTemplates\UI\WebControls\CheckBoxFieldPage.st" /> 
    577586    <None Include="App_Data\SqlTemplates\UI\WebControls\CommonDbDataSourceDataGridPage.st" /> 
     
    743752    <Content Include="UI\App_LocalResources\CulturePage.aspx.zh-CN.resx" /> 
    744753  </ItemGroup> 
     754  <ItemGroup> 
     755    <Content Include="UI\WebControls\App_LocalResources\BoundParameterPage.aspx.resx" /> 
     756  </ItemGroup> 
    745757  <Import Project="$(MSBuildThisFileDirectory)..\MSBuild.Common.targets" /> 
    746758  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" /> 
  • framework/trunk/WebLibrary/Sources/UI/WebControls/BoundParameter.cs

    r1611 r1625  
    202202        /// パラメータに対してデータをバインドします。 
    203203        /// </summary> 
    204         /// <param name="container">評価に使用するオブジェクト参照。</param> 
     204        /// <param name="page"><see cref="Page"/>。</param> 
    205205        /// <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) 
     206        internal static void DataBind(Page page, ParameterCollection parameters) 
     207        { 
     208            if (parameters == null || parameters.Count == 0 || page == null) 
     209            { 
     210                return; 
     211            } 
     212 
     213            DataBind(page.GetDataItem, parameters); 
     214        } 
     215 
     216        /// <summary> 
     217        /// パラメータに対してデータをバインドします。 
     218        /// </summary> 
     219        /// <param name="page"><see cref="Page"/>。</param> 
     220        /// <param name="parametersList">パラメータのコレクションのリスト。</param> 
     221        internal static void DataBind(Page page, params ParameterCollection[] parametersList) 
     222        { 
     223            if (parametersList == null || parametersList.Length == 0 || page == null) 
     224            { 
     225                return; 
     226            } 
     227 
     228            DataBind(page.GetDataItem, parametersList); 
     229        } 
     230 
     231        /// <summary> 
     232        /// パラメータに対してデータをバインドします。 
     233        /// </summary> 
     234        /// <param name="getContainer">評価に使用するオブジェクト参照を取得するデリゲート。</param> 
     235        /// <param name="parametersList">パラメータのコレクションのリスト。</param> 
     236        internal static void DataBind(Func<object> getContainer, params ParameterCollection[] parametersList) 
     237        { 
     238            if (parametersList == null || parametersList.Length == 0) 
     239            { 
     240                return; 
     241            } 
     242 
     243            object container = null; 
     244            foreach (ParameterCollection parameters in parametersList) 
     245            { 
     246                if (parameters == null || parameters.Count == 0) 
    217247                { 
    218                     boundParameter.DataBind(container); 
     248                    continue; 
     249                } 
     250 
     251                foreach (Parameter parameter in parameters) 
     252                { 
     253                    BoundParameter boundParameter = parameter as BoundParameter; 
     254                    if (boundParameter != null && !string.IsNullOrEmpty(boundParameter.DataField)) 
     255                    { 
     256                        boundParameter.DataBind(container ?? (container = getContainer())); 
     257                    } 
    219258                } 
    220259            } 
  • framework/trunk/WebLibrary/Sources/UI/WebControls/CommonDbDataSource.cs

    r1611 r1625  
    853853 
    854854            // バインドが必要なパラメータにデータをバインド 
    855             BoundParameter.DataBind(Page.GetDataItem(), SelectParameters); 
     855            BoundParameter.DataBind(Page, SelectParameters); 
    856856        } 
    857857 
  • framework/trunk/WebLibrary/Sources/UI/WebControls/DialogOpenButton.cs

    r1611 r1625  
    367367 
    368368            // バインドが必要なパラメータにデータをバインド 
    369             BoundParameter.DataBind(Page.GetDataItem(), navigateParameters); 
     369            BoundParameter.DataBind(Page, navigateParameters); 
    370370        } 
    371371 
  • framework/trunk/WebLibrary/Sources/UI/WebControls/Forwarder.cs

    r1611 r1625  
    292292 
    293293            // バインドが必要なパラメータにデータをバインド 
    294             BoundParameter.DataBind(Page.GetDataItem(), navigateParameters); 
     294            BoundParameter.DataBind(Page, navigateParameters); 
    295295        } 
    296296    } 
  • framework/trunk/WebLibrary/Sources/UI/WebControls/HyperLink.cs

    r1611 r1625  
    363363 
    364364            // バインドが必要なパラメータにデータをバインド 
    365             BoundParameter.DataBind(Page.GetDataItem(), navigateParameters); 
     365            BoundParameter.DataBind(Page, navigateParameters); 
    366366        } 
    367367 
  • framework/trunk/WebLibrary/Sources/UI/WebControls/LocalizedMessage.cs

    r1611 r1625  
    212212 
    213213            // バインドが必要なパラメータにデータをバインド 
    214             BoundParameter.DataBind(Page.GetDataItem(), textParameters); 
     214            BoundParameter.DataBind(Page, textParameters); 
    215215        } 
    216216 
  • framework/trunk/WebLibrary/Sources/UI/WebControls/ObjectDataSource.cs

    r1613 r1625  
    117117 
    118118            // バインドが必要なパラメータにデータをバインド 
    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); 
     119            BoundParameter.DataBind( 
     120                Page, 
     121                SelectParameters, 
     122                InsertParameters, 
     123                UpdateParameters, 
     124                DeleteParameters, 
     125                FilterParameters); 
    125126        } 
    126127 
  • framework/trunk/WebLibrary/Sources/UI/WebControls/TinyMCE.cs

    r1611 r1625  
    479479 
    480480            // バインドが必要なパラメータにデータをバインド 
    481             BoundParameter.DataBind(Page.GetDataItem(), initializeParameters); 
     481            BoundParameter.DataBind(Page, initializeParameters); 
    482482        } 
    483483 
詳しい使い方は TracChangeset を参照してください。