- PR -

データの編集表示について

1
投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2008/01/15
投稿数: 65
投稿日時: 2008-02-29 17:42
基本が判っていない質問で大変申し訳ありません。

どのスレッドか見つけられないのですが、以前、どっとねっとふぁんさんが回答していたBindしているデータの編集方法(ご自身のサイト:http://dotnetfan.org/blogs/dotnetfanblog/articles/692.aspx)について質問があります。

また、App_Codeには項目の編集用のクラスとしてCustomFormatクラスを作り、この中に編集ルーチン(ReplaceCrLf)を作成しました。
本当はGridViewの中から直接編集用のクラスを呼び出したかったのですがやり方がわからなかったのでデータの編集を行いたいGridViewの項目にeplaceCrLf(Eval("Comments"))と書き、ReplaceCrLfをコードビハインドとして用意し、その中からCustomFormatの編集ルーチンを呼び出しています。

一応この手順でデータの編集はできているのですが、App_Codeの編集ルーチンを呼び出すためだけにコードビハインドを作成するのは無駄な気がきています。
直接、編集ルーチンを呼び出す方法があるのであれば教えて下さい。





どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-02-29 18:05
CustomFormatクラスの中のReplaceCrLfをpublicなクラスメソッド(C#であればstatic)として定義してください。
そうすればGridViewの中から CustomFormat.ReplaceCrLf(Eval("Comments")) というような記述で呼び出せるかと思います。
要するに、他のクラスから直接呼び出せる形のメソッドになっていれば呼び出せるはずです。

ああ、CustomFormatクラスにnamespaceがついているときはそのあたりも記述する必要があります。

未記入
ベテラン
会議室デビュー日: 2008/01/15
投稿数: 65
投稿日時: 2008-02-29 18:56
ご本人に回答していただき恐縮です。

引用:

どっとねっとふぁんさんの書き込み (2008-02-29 18:05) より:
CustomFormatクラスの中のReplaceCrLfをpublicなクラスメソッド(C#であればstatic)として定義してください。
そうすればGridViewの中から CustomFormat.ReplaceCrLf(Eval("Comments")) というような記述で呼び出せるかと思います。
要するに、他のクラスから直接呼び出せる形のメソッドになっていれば呼び出せるはずです。

ああ、CustomFormatクラスにnamespaceがついているときはそのあたりも記述する必要があります。





CustomFormat.ReplaceCrLf(Eval("Comments"))と書くと実行時に
「非共有メンバを参照するには、オブジェクト参照が必要です。」というエラーになってしまうため、今の方法になっています。
何がいけないのか教えて頂けないでしょうか。

クラスは次のように作成しています。
Public Class CustomFormat
Public Function ReplaceCrLf(ByVal data As String) As String
Return data.Replace("" + vbCrLf, "<br />")
End Function
End Class

コードビハインド
Public Function ReplaceCrLf(ByVal data As String) As String
Dim cf As CustomFormat = New CustomFormat()
Return cf.ReplaceCrLf(data)
End Function


どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-02-29 19:10
今のコードビハインドのソースをみると、CustomFormatクラスのインスタンスを作成して、そのインスタンスメソッドであるReplaceCrLfを呼び出してますよね。
これを、ReplaceCrLfをクラスメソッド(インスタンスの作成を必要とせずに呼び出せるメソッド)にしてください。

#VBだとどう書くのか知らないので(^^;
未記入
ベテラン
会議室デビュー日: 2008/01/15
投稿数: 65
投稿日時: 2008-02-29 19:14
引用:

どっとねっとふぁんさんの書き込み (2008-02-29 19:10) より:
今のコードビハインドのソースをみると、CustomFormatクラスのインスタンスを作成して、そのインスタンスメソッドであるReplaceCrLfを呼び出してますよね。
これを、ReplaceCrLfをクラスメソッド(インスタンスの作成を必要とせずに呼び出せるメソッド)にしてください。

#VBだとどう書くのか知らないので(^^;



私も教えて欲しいです・・・・
どなたかよろしくお願いします。
くまっち
大ベテラン
会議室デビュー日: 2008/01/18
投稿数: 169
お住まい・勤務地: 茨城県のどこか。
投稿日時: 2008-02-29 20:21
引用:

どっとねっとふぁんさんの書き込み (2008-02-29 19:10) より:
これを、ReplaceCrLfをクラスメソッド(インスタンスの作成を必要とせずに呼び出せるメソッド)にしてください。

#VBだとどう書くのか知らないので(^^;



Public Shared Function
でしょうか。
未記入
ベテラン
会議室デビュー日: 2008/01/15
投稿数: 65
投稿日時: 2008-03-03 10:49
引用:

くまっちさんの書き込み (2008-02-29 20:21) より:
引用:

どっとねっとふぁんさんの書き込み (2008-02-29 19:10) より:
これを、ReplaceCrLfをクラスメソッド(インスタンスの作成を必要とせずに呼び出せるメソッド)にしてください。

#VBだとどう書くのか知らないので(^^;



Public Shared Function
でしょうか。



直接指定できるようになりました。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)