2009-11-13 6 views
6

私はASP.NETページで作業しています。これは、基本的にデータベースのハックです。これは内部プロジェクトに使用され、サイトはいくつかの人にデータへの読み取り/書き込みアクセスを提供する方法で設定されています。 1週間に1回、XMLファイルから多数のデータを収集し、XMLファイルに追加し、アプリケーション更新の一部として顧客に送信します。 (これらの顧客は直接アクセスすることはできません)新しいレコードを作成するとき、フィルタの値でいくつかのフィールドをどのように埋めるのですか?

これは単なる内部プロジェクトなので、予算はほとんどありません。だから私たちは物事を単純に保つことを選んだのです。データをSQL Serverデータベースに格納し、データアクセスのためにEntity Frameworkクラスを作成しました。これを中心に動的データサイト Webアプリケーションを配置しました。基本的には、本当に速く、多くのコードを書くことなく設定できるもの。それはかなりうまくいく。特に、ブールフィールドとテーブル参照によるレコードのフィルタリングは本当にクールです。

しかし、データ入力中に、少数のユーザーが間違いを犯すことがあります。彼らはフィルタを設定してテーブルのサブセットをフィルタリングし、 "New"をクリックしてこのサブセットにレコードを追加します。残念ながら、新しいレコードはこれらのフィルタの値にデフォルト設定されていないため、ユーザーは適切な値を再度設定する必要があります。あまりにも悪い時にはこれを見逃すので、いくつかのレコードは間違った値で終わる。

ユーザーが新しいレコードを作成するとき、この新しいレコードがデフォルトとしてフィルタ値をコピーするようにするにはどうすればよいですか? (そして、ユーザーが他の値を選択できるようにしてください)

+1

私は正直なところだろう、私はそれが可能であれば驚くだろう。面白い質問のために+1: –

+0

私が尋ねなければ、私はそれを働かせることは決してないだろう。 :-) –

+0

バージョン1に入っている可能性があり、これは今後登場するはずです。 –

答えて

1

ここで答え、また、スティーブン・ノートンことで、このブログの記事をhttp://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14475

Dynamically set defaults for scaffolded tables according to dynamic filters

は、動的データ先物「フィルタからの値を取り込む挿入テンプレートを」確認http://csharpbits.notaclue.net/2009/01/getting-default-values-from-list-page.html

+0

"Dynamic Data Futures"リンクは非常に便利でした! –

0

私はObject Factoryを新しいボタンonclickにフックします。 Filter値またはViewへのインターフェイスのいずれかを使用してFactoryを初期化し、Factoryが適切に初期化されたオブジェクトを返すようにします。

1

新しいレコードを作成したときに発生するイベントはありますか?イベントハンドラを実装でき、現在のフィルタセットがプログラムでアクセスできるものであれば、newRecord()イベントハンドラでは、現在の各フィルタを調べ、フィルタのどのフィールドを調べるべきかフィルタの値は何ですか、新しいレコードのフィールドをフィルタ値に設定します。

NewRecordHandler(object sender, NewRecordEventArgs e) 
{ 
    Record newRecord = (Record)e.NewRecord; 
    foreach(Filter filter in m_dataSource.Filters) 
    { 
     newRecord[filter.FieldName] = filter.Value; 
    } 
} 

あなたはRecord["ColumnName"] = value;のように、インデックスまたは文字列のいずれかを使用して、動的にレコードのプロパティにアクセスできるようにする必要があります:それは場合に役立ちます。ここ

は、いくつかの擬似コードです。それ以外の場合は、図のようにループで実行できない場合があります。お役に立てれば。

+0

良い質問です。私はVS2008が "ダイナミックデータサイト"コードを提供するデフォルトの機能を使用しているだけです。残念ながら、デフォルトではこれを実行せず、解決策を探す時間があまりありませんでした。 (今、これは私が解決策を知った後に追加される素晴らしいものです。他のタスクが優先されるため、積極的に検索していません。) –

関連する問題