シーケンス番号を除いてさまざまな列のセットを持つこのDataTableがあります。
| シーケンス| 値| 税金| 義務| 合計|
任意の数の列を一意の列名で受け入れる必要があります。
そのテーブルを表示するには、SelectメソッドでプレゼンタークラスにマップされたObjectDataSourceを使用する必要があります。
class Presenter {
[DataObjectMethod(DataObjectMethodType.Select)]
public DataView GetDutyAndTax() { ... }
}
次に、ObjectDataSourceは、AutoGenerateColumnsがtrueに設定されたGridViewにバインドされます。シーケンスはデータキーです。
これまでのところ、それはテーブルを選択するために機能します。テーブルを更新する必要があるときに問題が発生します。ObjectDataSourceは、テーブルの列のパラメーターとまったく同じパラメーターを持つupdateメソッドを使用するように私を悩ませ続けます。
public void EditDutyAndTax(string Value, string Tax, string Duty, string original_Sequence) { ... }
しかし、必要な列のセットがわからないため、そのようなメソッドを作成することはできません。
変数パラメータリストのあるメソッドを使ってみましたが、使いたくありません。
public void EditDutyAndTax(params object[] values) { ... }
私が今持っているアイデアは、Presenterで次のような一連の更新メソッドを作成することです。
public void EditDutyAndTax(string value1, string original_Sequence) { ... }
public void EditDutyAndTax(string value1, string value2, string original_Sequence) { ... }
public void EditDutyAndTax(string value1, string value2, string value3, string original_Sequence) { ... }
//an so on...
しかし、私はそれがコードレビューを通過することも、アイデアが好きでもないと思います。
私が持っているもう1つのアイデアは、動的メソッドを作成し、それを(可能であれば)Presenterクラスまたは実行時の任意の場所にアタッチすることですが、それが機能するかどうかはわかりません。
だからあなたたちが何か解決策を持っているなら、助けてください。本当にありがとう!
カルロス