- - PR -
データ表示時の文字列編集方法
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-04-11 09:59
DataListにSQLDataSourceを使ってLabelにデータを表示させているのですが、
データの中に郵便番号や電話番号があり、ハイフン編集をして表示させたいのですが、 どのようにすれば良いかわかりません。 LabelタスクのDataBindingsの編集-カスタムバインドのコード式で DataBinder.Evalメソッドの第3引数の書式指定でできないものかと調べてみましたが わからずじまいで困っています。 VS2008 VB [ メッセージ編集済み 編集者: ojiboss 編集日時 2008-04-11 09:59 ] | ||||||||
|
投稿日時: 2008-04-11 10:21
郵便番号なんかは標準の書式指定文字列では、できなかったような気がします。
コードビハインドファイル側で、クラスの中に Protected なメソッドを追加して、 それにカスタムバインドすればどうでしょう?
テンプレート側は、カスタムバインド式に FormatZipCode(Eval("列名")) みたいな感じで使えます。 | ||||||||
|
投稿日時: 2008-04-11 11:04
>テッテさん
レスありがとうございます。 ご教授いただいた方法を試しましたが、ハイフン編集されず、またエラーも表示される こともなくページが表示されます。 コードビハインドファイル側で、クラスの中のFormatZipCodeメソッドには以下の コードを書きました。 Protected Function FormatZipCode(ByVal zipCode As Object) As String FormatZipCode = String.Format(zipCode.ToString(), "###-####") End Function テンプレート側は、カスタムバインド式にFormatZipCode(Eval("列名")) を 設定しました。 何がたりないでしょうか? デバッグしても、FormatZipCodeメソッドがコールされていません。 よろしくお願いします。 | ||||||||
|
投稿日時: 2008-04-11 11:15
(コードをcodeで囲みました) zipCode を ToString() すると、文字列になります。 文字列には書式 "###-####" を使用できません。 これでわかりますか? (ちょっと時間がないのであんまり詳しく説明してるヒマがないですが) FormatZipCode メソッドが呼ばれない理由はちょっとわからないです。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||
|
投稿日時: 2008-04-11 11:42
メソッド内のコードに問題があるのは、ぽぴ王子さんがご指摘している通りです。
データベースの郵便番号の列はどういう型で、どういう形式で保持しているのでしょう? FormatZipCode メソッドや、テンプレート内の記述については、 見直してみましたが、合っているように思えます。 デバッグで通らない原因は私にもわかりません。 リビルドして再度確認してみてもらえますか? | ||||||||
|
投稿日時: 2008-04-11 12:10
>ぽぴ王子さん、テッテさん
ご指摘ありがとうございます。String.Formatの使い方を理解していませんでした。 使い方を理解し、無事ハイフン編集ができました。 デバッグでコールされない原因はデバッグ設定のミスでした。すいません。 ありがとうございました。 ただ、このようなハイフン編集メソッドなどを各ページに記述するのは保守性が悪いので 編集クラスを作って、カスタムバインドで使用することはできないのでしょうか? また、今回のようなカスタムバインドのコード式の使用方法がのっている参考URLがあれ ば教えていただければ幸いです。 よろしくお願いします。 | ||||||||
|
投稿日時: 2008-04-11 12:53
編集クラスってどういうものを想像されているのか、よくわかりませんが、 Public な Shared メソッドを公開するクラスを作って、以下のようにすることはできます。 App_Code 内のどこかで、こんなクラスを定義しておいて
カスタムバインド式には、以下のように書きます。 EditClass.FormatZipCode(Eval("列名")) | ||||||||
|
投稿日時: 2008-04-11 13:13
>テッテさん
ご教授ありがとうございます。 実装したいと思います。本当にありがとうございました。 |
1