我有这个DataTable,除了序列号之外,它有一组不同的列.
| 序列| 价值| 税| 职责| 总计|
应使用唯一列名接受任意数量的列.
要显示该表,我需要使用一个ObjectDataSource,使用Select方法映射到presenter类.
class Presenter { [DataObjectMethod(DataObjectMethodType.Select)] public DataView GetDutyAndTax() { ... } }
然后将ObjectDataSource绑定到GridView,并将AutoGenerateColumns设置为true.Sequence是数据键.
到目前为止,这适用于选择表格.当我需要更新表时问题就出现了.ObjectDataSource一直唠叨我有一个更新方法,其参数与表中列的参数完全相同.
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...
但我认为这不会通过代码审查,也不会像想法一样.
我的另一个想法是创建一个动态方法并将其(如果可能)附加到Presenter类或运行时的任何位置,但我不确定这是否有效.
所以,如果你们有任何解决方案,请帮忙.非常感谢!
卡洛斯