0

フォームビューを駆動するために使用する要素のリストがあります。通常、結果セットは5〜15レコードです。現在、フォームビューには、ナビゲーション用の一般的な最初/前/次/最後があります。問題は、ユーザーが特定のレコードに直接移動して編集する必要がある場合があることです。ここのレコードは、かなり短い説明があるジョブタスクです。

そのフォームのすべてのレコードを一覧表示するグリッドビューをフォームビュー内に配置するというアイデアが提案されました。ユーザーはそのレコードのビューを選択または編集するだけで、そのレコードに直接移動して適切なモードになります。これをフォームビューの外に置くこともできますが、それは実際には問題ではありません。

問題は、破壊力に関係なく、外部グリッドのようなものから駆動されるXを記録するようにフォームビューに指示する方法です。

フォームビューにDataKeyNamesフィールドがあることは知っていますが、フォームビューの現在のデータセットにある場合、「PKが17である人を記録するために移動する」と言う方法はありますか?

もしそうなら、誰かがそれのためのサンプルC#コードを持っていますか?既存のフォームビューに単一のレコードを入力するだけでよいことはわかっていますが、イベントでも通常のナビゲーションボタンをそのままにしておくこともできます(場合によっては、何百ものジョブタスクがある場合があります。その場合はdグリッドビューを抑制します-間違っているように聞こえますが、ビジネスケースにはまだまだあります)。

4

1 に答える 1

0

この短い解決策は、グリッドを FormView ItemTemplate に埋め込み、両方で同じデータ ソースを参照することでした。

行を編集可能にするには、リンク ボタン (または編集をトリガーするために使用している任意のコントロール) を取得し、コマンド引数を行インデックスに設定するグリッド上の RowDataBound の単純なコールバックが必要です。その後、コマンド引数 (再び行インデックス) を取得し、FormView PageIndex をその値に設定し、FormView の ChangeMode を FormViewMode に設定するリンク ボタン (またはトリガー) のコールバックが必要です。編集。

要約すると、読み取り専用ビューの場合、すべてのアイテムを含むグリッドですが、編集または挿入を処理すると、従来のフォーム ビューが得られます。

于 2013-01-22T18:29:12.983 に答える