ASP.NET

ポップアップウィンドウが閉じられたときに再検索を行う方法

概要 この記事では、ポップアップウィンドウが閉じられたときに、呼び出し元画面 (親画面) の再検索を行う方法について説明します。環境は、 ASP.NET (C#, VB.NET) を想定しています。この Tips では、 ClientScript.GetPostBackEventReference() を使用しま…

テキストボックスの値が変わったとき UpdatePanel を更新する方法

概要 この記事では、テキストボックスの値が変わったとき UpdatePanel を更新する方法について説明します。テキストボックスの値変更と UpdatePanel を関連づける方法は 2 つあります。以下では、最初に ASP.NET 内だけで処理できる方法 (AutoPostBack プロ…

ユーザコントロールにイベントを関連づける方法

概要 ASP.NET のユーザコントロールは、既存のコントロールをデザイナから貼り付けるだけで簡単に作成することができます。カスタムコントロールの簡易版として利用されることも多いですが、少し複雑なことを仕様とするとすぐに行き詰まってしまう方が多いよ…

データセット (xsd) を使用した複雑な更新処理

GridView と ObjectDataSource を使用してデータの更新を行う場合、対象のテーブルが 1 つなら簡単に実行することができます。しかし、複数のテーブルに対して更新を行う場合、処理が複雑になってきます。第7回 マスタ/詳細テーブルにおける更新処理では、…

MSDN Magazine の AJAX 関連記事メモ

MSDN Magazine の AJAX 関連記事メモです。本当は全てまとめようと思ったのですが、とりあえず直近のものだけリストにしておきます。日本語で詳しい解説は少ないですので、英語が苦手な人は要チェックです。 Cutting Edge: AJAX におけるユーザー エクスペリ…

海外の .NET 開発系 FAQ

海外の .NET 開発系 FAQ のリンクです。たいていの疑問は検索すれば大体わかりますが、よくある質問に一通り目を通しておくと役立つことが多いです。 Windows Forms FAQ ASP .NET FAQ

ボタンの有効と無効状態を切り替える

Ajax 利用時に JavaScript の disabled を変更する方法は、第2回 PageRequestManagerクラスでUpdatePanelコントロールを極める! が参考になります。 Sys.WebForms.PageRequestManager.getInstance() の使用法が解説されています。

GridView に行番号をつける

FAQ のような記事ですが、 GridView に行番号を表示する方法について説明します。 SQL でデータを取得するときに付加する方法 SQL で行番号を追加するには、 ROW_NUMBER() を使用します。たとえば、以下のような SQL を記述します。 *1 SELECT ROW_NUMBER() …

ASP.NET でモーダルダイアログボックス

概要 ASP.NET でモーダルダイアログを実現するには、以下の 3 通りの方法があります。 JavaScript の showModalDialog() を使用 JavaScript の window.open() を使用してフォーカスを常に取得 Ajax Control Toolkit の ModalPopupExtender コントロールを使…

ViewState のサイズを計測する方法

Bugslayer: ビュー ステートの影響を測定する -- MSDN Magazine, November 2007 では、 ViewState の大きさを計測する方法や ASP.NET でのデバッグ手法などが解説されています。C++ で開発を行っている場合、過去の Bugslayer シリーズもおすすめです。オン…

PlaceHolder や Panel にコントロールを動的に追加した時の挙動

ASP.NET の PlaceHolder や Panel にコントロールを動的に追加した場合、追加したコントロールの状態が保持されないようです。少しはまってしまったので、メモしておきます。確認手順は以下の通りです。 画面に PlaceHolder を配置 Page_Init() や Page_Load…

SQL Server のエラー番号を調べる方法

SQL Server のエラー番号を調べるには、 sys.messages カタログ ビューを参照します。 (古いバージョンの SQL Server を使用している場合、 master.dbo.sysmessages テーブルを参照してください。)たとえば .NET で開発している場合、 SqlException.Number …

Windows Server 2003 と SQL Server 2005 と ASP.NET 2.0 の連携設定

Windows Server 2003 と SQL Server 2005 と ASP.NET 2.0 の連携設定のメモです。以下のサイトが参考になります。 Error message when you try to run an ASP.NET 2.0 application on a Windows Server 2003-based computer: "Server unavailable" How To: A…

ValidationProperty

作成したユーザコントロールやカスタムコントロールを Validator に対応させるには、 ValidationProperty 属性をクラスに設定します。詳細は MSDN を参照してください……といいたいところですが、残念ながらほとんど情報がありません。サーバサイドの検証に対…

ASP.NET で ComboBox

たまに ASP.NET で ComboBox を使いたいという要件があるのでメモ。 ComboBox WebControl - The Code Project - ASP.NET が参考になります。 *1 *1:しかし、 Web で ComboBox はやめてほしい。普通に DropDownList にしようよ……。

GridView 内のデータを 3 桁区切りで表示

GridView (ASP.NET) のデータに書式を設定するには、 DataFormatString プロパティを使用します。たとえば、数値を 3 桁区切りで表示するには、以下のように設定します。ポイントは、 HtmlEncode 属性を False にすることです。 <asp:BoundField HeaderText="Sum" DataField="Sum" DataFormatString="{0:N0}" HtmlEncode="False" /> 構文などの詳細は MSDN を参</asp:boundfield>…

GridView のコマンドメモ

GridView の動作を TemplateField に配置したカスタムのボタンなどで行いたい場合、 CommandName プロパティ (と CommandArgument プロパティ) を使用します。 CommandName プロパティに設定できる文字列は、以下のようです。 Edit Delete Update Cancel Pag…

Web 標準を使用した ASP.NET 2.0 Web サイトの構築

ASP.NET を使用しながら W3C などの標準にできる限り準拠する場合、以下のサイトが参考になります。*1 Web 標準を使用した ASP.NET 2.0 Web サイトの構築 Japan.internet.com デベロッパー - ASP.NET 2.0を使ってCSS対応のWebサイトを作成する ASP.NET 2.0 C…

web.config や app.config の内容へアクセスする方法

忘れやすいので箇条書きでメモします。 System.Configuration.ConfigurationManager.ConnectionStrings["SourceName"].ConnectionString global::DataAccessNamespace.Properties.Settings.Default.SourceName System.Web.Configuration.WebConfigurationMan…

ユーザコントロール (ASP.NET) を動的に作成

ASP.NET でユーザコントロール (UserControl) を動的に作成するには、 LoadControl() を使用します。通常のやり方 (new) では、作成できないので注意が必要です。 DateTextBox control = (DateTextBox)LoadControl("~/UserControl/DateTextBox.ascx");

データバインディングの構文メモ

ASP.NET で使用できるデータバインディングの構文をメモしておきます。 15 Seconds : Simplified and Extended Data Binding Syntax in ASP.NET 2.0 の情報がまとまっていて参考になります。 <%# Container.DataItem("expression") %> <asp:Label id="label1" runat="server" Text='<%# Container.DataItem("CustomerName") %>' /> <%# DataBinder.Eval(</asp:label>…

RangeValidator で日付チェック

ASP.NET の Validator で日付チェックを簡単に行うには、 RangeValidator が便利です。以下のように、「Type="Date" MinimumValue="1900/01/01" MaximumValue="9999/12/31"」と設定してください。 (MinimumValue と MaximumValue は、業務要件によって変更し…

RegularExpressionValidator で数値 (少数を含む) を許可

ASP.NET の RegularExpressionValidator で数値 (整数、小数) を許可するには、「ValidationExpression="^[0-9]+(\.[0-9]{1,4})?$"」とします。ここでは、小数点以下 4 桁まで許すようにしました。 (正規表現内の 4 という数字を任意の数字に変更することで…

RegularExpressionValidator で英数字を許可

前述の FilteredTextBoxExtender は、入力制御に ClientScript (JavaScript) を使用します。そのため、 ASP.NET の Validator を併用し、スクリプトが無効な環境でも検証を有効にする (サーバ側での検証も行う) のが望ましいです。RegularExpressionValidato…

FilteredTextBoxExtender で英数字を許可

Ajax Control Toolkit の FilteredTextBoxExtender で英数字を許可するには、 FilterType 属性を Custom にして ValidChars 属性を設定してもいいですが、「FilterType="UppercaseLetters, LowercaseLetters, Numbers"」というように設定することもできます…

ScriptManagerProxy の用途

ScriptManager (ToolkitScriptManager) はページ内に 1 つしか配置することができません。そのため、マスタページに ScriptManager が含まれていて、各ページ内でサービスを参照する必要がある場合は、 ScriptManagerProxy を使用します。使用例は以下のよう…

ページ内の WebMethod (PageMethod) を呼び出す

ページ内の WebMethod (PageMethod) を JavaScript から呼び出すには、 ScriptManager の EnablePageMethods 属性を true に設定します。 (Ajax Control Toolkit を使用する機会が多いため、以下の例では ToolkitScriptManager を使用しています。) <ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManagerMain" runat="server" EnablePageMethods="True"> </ajaxtoolkit:toolkitscriptmanager>

JavaScript から WebMethod を呼び出す方法

この記事では、 ASP.NET 2.0 AJAX Extensions を使用して「JavaScript から WebMethod を呼び出す方法」について説明します。 *1 WebService の作成 まず、 WebService を作成します。 Visual Studio の「新しい項目の追加」から「Web サービス」を選択し、…

ScriptManager と ToolkitScriptManager

ASP.NET で Ajax を使用する場合は ScriptManager をページ内に設置しますが、 Ajax Control Toolkit を採用している場合は ToolkitScriptManager が利用できます。 ScriptManager と ToolkitScriptManager で基本的な機能は同等ですが、多数の js ファイル…

ASP.NET の忘れやすい内容メモ

リソースの構文 Text="" データバインディングの構文 Checked='' 小数点 2 桁固定で、カンマをつける場合 decimalValue.ToString("N2");