チェンジセット 1673 (default)
- 日時:
- 2024/08/30 14:59:09 (5週前)
- 場所:
- framework/trunk
- ファイル:
-
- 4個の更新
凡例:
- 未変更
- 追加
- 削除
-
framework/trunk/WebApplication/UI/WebControls/ConfirmPage.aspx
r1671 r1673 197 197 ConfirmControl="Confirm404" 198 198 ConfirmArgument="arg<span style="text-decoration: overline">404</span> Argument
line2" 199 OnClick="Button_Click" /> 200 201 202 <h2>クライアントスクリプト</h2> 203 204 <h3>OnClientPreExpression プロパティ (true or false)</h3> 205 <input type="text" id="InputText501"/> 206 <sff:Confirm ID="Confirm501" runat="server" 207 Text="Confirm501 ?" 208 Title="confirm title" 209 OnClientPreExpression="document.getElementById('InputText501').value.length > 0" /> 210 <sff:Button ID="Button501" runat="server" 211 Text="Confirm501" 212 ConfirmControl="Confirm501" 213 OnClick="Button_Click" /> 214 215 <h3>OnClientPreExpression プロパティ (true or null)</h3> 216 <input type="text" id="InputText502"/> 217 <sff:Confirm ID="Confirm502" runat="server" 218 Text="Confirm502 ?" 219 Title="confirm title" 220 OnClientPreExpression="document.getElementById('InputText502').value.length > 0 ? true : null" /> 221 <sff:Button ID="Button502" runat="server" 222 Text="Confirm502" 223 ConfirmControl="Confirm502" 224 OnClick="Button_Click" /> 225 226 <h3>OnClientPreExpression プロパティ (true or undefined)</h3> 227 <input type="text" id="InputText503"/> 228 <sff:Confirm ID="Confirm503" runat="server" 229 Text="Confirm503 ?" 230 Title="confirm title" 231 OnClientPreExpression="document.getElementById('InputText503').value.length > 0 ? true : void(0)" /> 232 <sff:Button ID="Button503" runat="server" 233 Text="Confirm503" 234 ConfirmControl="Confirm503" 199 235 OnClick="Button_Click" /> 200 236 -
framework/trunk/WebApplication/UI/WebControls/ConfirmPage.aspx.designer.cs
r1671 r1673 284 284 285 285 /// <summary> 286 /// Confirm501 コントロール。 287 /// </summary> 288 /// <remarks> 289 /// 自動生成されたフィールド。 290 /// 変更するには、フィールドの宣言をデザイナー ファイルから分離コード ファイルに移動します。 291 /// </remarks> 292 protected global::FCSoft.SilverFrost.Framework.Web.UI.WebControls.Confirm Confirm501; 293 294 /// <summary> 295 /// Button501 コントロール。 296 /// </summary> 297 /// <remarks> 298 /// 自動生成されたフィールド。 299 /// 変更するには、フィールドの宣言をデザイナー ファイルから分離コード ファイルに移動します。 300 /// </remarks> 301 protected global::FCSoft.SilverFrost.Framework.Web.UI.WebControls.Button Button501; 302 303 /// <summary> 304 /// Confirm502 コントロール。 305 /// </summary> 306 /// <remarks> 307 /// 自動生成されたフィールド。 308 /// 変更するには、フィールドの宣言をデザイナー ファイルから分離コード ファイルに移動します。 309 /// </remarks> 310 protected global::FCSoft.SilverFrost.Framework.Web.UI.WebControls.Confirm Confirm502; 311 312 /// <summary> 313 /// Button502 コントロール。 314 /// </summary> 315 /// <remarks> 316 /// 自動生成されたフィールド。 317 /// 変更するには、フィールドの宣言をデザイナー ファイルから分離コード ファイルに移動します。 318 /// </remarks> 319 protected global::FCSoft.SilverFrost.Framework.Web.UI.WebControls.Button Button502; 320 321 /// <summary> 322 /// Confirm503 コントロール。 323 /// </summary> 324 /// <remarks> 325 /// 自動生成されたフィールド。 326 /// 変更するには、フィールドの宣言をデザイナー ファイルから分離コード ファイルに移動します。 327 /// </remarks> 328 protected global::FCSoft.SilverFrost.Framework.Web.UI.WebControls.Confirm Confirm503; 329 330 /// <summary> 331 /// Button503 コントロール。 332 /// </summary> 333 /// <remarks> 334 /// 自動生成されたフィールド。 335 /// 変更するには、フィールドの宣言をデザイナー ファイルから分離コード ファイルに移動します。 336 /// </remarks> 337 protected global::FCSoft.SilverFrost.Framework.Web.UI.WebControls.Button Button503; 338 339 /// <summary> 286 340 /// Button901 コントロール。 287 341 /// </summary> -
framework/trunk/WebLibrary/Resources/Script/UIConfirm.js
r1543 r1673 65 65 keepSpaceArgument: false, 66 66 keepBreakArgument: false, 67 preExpression: null, 67 68 confirmed: null 68 69 }, … … 168 169 var selectedCallback = null; 169 170 171 var notifyResult = function (event, selectedButton) { 172 if (closeCallback) { 173 closeCallback(selectedButton); 174 } 175 self._trigger('confirmed', event, selectedButton); 176 } 177 178 var preExpression = options.preExpression; 179 if (preExpression != null) { 180 var preExpressionResult = typeof preExpression === 'function' ? preExpression() : preExpression; 181 if (preExpressionResult === true || preExpressionResult === false) { 182 notifyResult(null, preExpressionResult ? 0 : 1); 183 return; 184 } 185 } 186 170 187 var width = options.width; 171 188 if (width == null) { … … 228 245 selectedCallback(event); 229 246 } 230 if (closeCallback) { 231 closeCallback(selectedButton); 232 } 233 self._trigger('confirmed', event, selectedButton); 247 notifyResult(event, selectedButton); 234 248 }); 235 249 this._dialog.dialog('open'); … … 238 252 239 253 $.extend($.ui.confirm, { 240 version: '1. 2'254 version: '1.3' 241 255 }); 242 256 -
framework/trunk/WebLibrary/Sources/UI/WebControls/Confirm.cs
r1672 r1673 25 25 using System; 26 26 using System.ComponentModel; 27 using System.Text.RegularExpressions; 27 28 using System.Web; 28 29 using System.Web.UI; … … 97 98 private const string CancelValidationGroupKey = "CancelValidationGroup"; 98 99 100 /// <summary> 101 /// <see cref="OnClientPreExpression"/> プロパティ用のキー。 102 /// </summary> 103 private const string OnClientPreExpressionKey = "OnClientPreExpression"; 104 99 105 100 106 /// <summary> … … 107 113 /// </summary> 108 114 private static readonly object EventCanceledKey = new object(); 115 116 117 /// <summary> 118 /// <c>return</c> で始まるクライアントスクリプトの式かどうかを判別する正規表現。 119 /// </summary> 120 private static readonly Regex ReturnClientScriptRegex 121 = new Regex(@"^\s*return\s+"); 109 122 110 123 … … 365 378 366 379 /// <summary> 380 /// クライアントサイドで事前評価を行う式を取得及び設定します。 381 /// </summary> 382 /// <value> 383 /// クライアントサイドで事前評価を行う式。 384 /// 既定値は空文字列。 385 /// </value> 386 /// <remarks> 387 /// <para> 388 /// <see cref="Button.ConfirmControl"/> 等により表示しようとした時のみ使用されます。 389 /// <see cref="Show(bool, bool)"/> で表示しようとしたときは無視されます。 390 /// </para> 391 /// <para> 392 /// このプロパティで指定された式が <see langword="true"/> 393 /// を返した場合は <c>Ok</c> ボタンを押したことと同じになります。 394 /// <see langword="false"/> 395 /// を返した場合は <c>Cancel</c> ボタンを押したことと同じになります。 396 /// 何も返さない場合や <see langword="null"/> 397 /// を返した場合は確認ダイアログが表示されます。 398 /// </para> 399 /// </remarks> 400 [Themeable(false)] 401 [DefaultValue("")] 402 [WebCategory("Behavior")] 403 [WebDescription("Description_Behavior")] 404 public virtual string OnClientPreExpression 405 { 406 get 407 { 408 return (string)(ViewState[OnClientPreExpressionKey] ?? string.Empty); 409 } 410 411 set 412 { 413 ViewState[OnClientPreExpressionKey] = value; 414 } 415 } 416 417 /// <summary> 367 418 /// サーバー コントロールを UI としてページに表示するかどうかを示す値を取得または設定します。 368 419 /// </summary> … … 462 513 /// 引数。 463 514 /// </param> 515 /// <remarks> 516 /// このメソッドは <c>PreRender</c> 以降で呼び出す必要があります。 517 /// </remarks> 464 518 internal void RegisterOnClientClick(Control control, string argument) 465 519 { … … 534 588 // 親を呼び出す 535 589 base.OnPreRender(e); 590 591 string preExpression = OnClientPreExpression; 592 if (!string.IsNullOrWhiteSpace(preExpression)) 593 { 594 // ReSharper disable once ExceptionNotDocumented 595 if (ReturnClientScriptRegex.IsMatch(preExpression)) 596 { 597 // return XXX 598 preExpression = "function() { " + preExpression + "; }"; 599 } 600 else 601 { 602 // property.value や value == 'XX' や (a ? b : c) や functionName() など 603 preExpression = "function() { return (" + preExpression + "); }"; 604 } 605 } 606 else 607 { 608 preExpression = "null"; 609 } 536 610 537 611 StyleUtility.RegisterJQueryConfirm(); … … 548 622 htmlEncodeArgument: " + HtmlEncode.ToString().ToLowerInvariant() + @", 549 623 keepSpaceArgument: " + KeepSpace.ToString().ToLowerInvariant() + @", 550 keepBreakArgument: " + KeepBreak.ToString().ToLowerInvariant() + @" 624 keepBreakArgument: " + KeepBreak.ToString().ToLowerInvariant() + @", 625 preExpression: " + preExpression + @" 551 626 })" + (showOnRender ? @".confirm('confirm', null, function(selectedButton) { 552 627 if (selectedButton == 0) {"
※ 詳しい使い方は
TracChangeset を参照してください。