1

双方向バインディング (Text='<% #Bind("FieldName") %>' など) を使用して FormView でコントロールをバインドする場合、フィールド名 "FieldName" を取得するにはどうすればよいですか? この情報を使ってやりたいことがいくつかあります。たとえば、ERWin からのすべてのフィールド定義のダンプを含むデータベース テーブルがあり、個々のフィールドごとにある種の状況依存ヘルプをプログラムで作成したいと考えています (数十のフォームにまたがる数百のフィールドがあります)。

これは、1 年前に尋ねられた質問とほとんど同じですが、答えは私にはあまり意味がありませんでした。まず、答えは FormView ではなく GridView に対するものであるように見えました (e.Row.Cells[0] がそれを与えました)。第二に、SortExpression は何と関係があるのでしょうか? 3 番目に、イベント引数について言及していますが、どのイベントに対してですか? OnDataBound では、EventArgs e は空です。

4

2 に答える 2

1

列名が必要なレベルで保存されていないため、FormView からこの情報を取得する方法はないようです。

ただし、コンパイル時に知っているものを実行時に取得する理由が理解できないことを認めなければなりません。必要なコードだけを書くことができないのはなぜですか? コードをより汎用的にしたい場合でも、コントロール名とそれに関連付けられたバインドされた列名のディクショナリを作成して、必要なことを実行するクラスに渡すことができます。

最後の質問への回答について - GridView は列名を SortExpression プロパティに格納するため、ユーザーがグリッドを並べ替えるときにどの列を並べ替えるかがわかります。したがって、GridView では、SortExpression を介して列名にアクセスできます。

于 2009-10-16T17:24:05.090 に答える
0

これを行う簡単な方法は、データ フィールドの名前を Formview コントロールの Tooltip プロパティにプログラムで割り当てることです。ユーザーがこれらのコントロールにマウスを合わせると、データ フィールド名が表示されます。より具体的な回答が必要な場合は、これが達成しようとしていることかどうかを指定してください。

于 2009-10-02T21:46:02.467 に答える