我有这个DataTable,除了序列号之外,它有一组不同的列.
| 序列| 价值| 税| 职责| 总计|
应使用唯一列名接受任意数量的列.
要显示该表,我需要使用一个ObjectDataSource,使用Select方法映射到presenter类.
class Presenter {
[DataObjectMethod(DataObjectMethodType.Select)]
public DataView GetDutyAndTax() { ... }
}
Run Code Online (Sandbox Code Playgroud)
然后将ObjectDataSource绑定到GridView,并将AutoGenerateColumns设置为true.Sequence是数据键.
到目前为止,这适用于选择表格.当我需要更新表时问题就出现了.ObjectDataSource一直唠叨我有一个更新方法,其参数与表中列的参数完全相同.
public void EditDutyAndTax(string Value, string Tax, string Duty, string original_Sequence) { ... }
Run Code Online (Sandbox Code Playgroud)
但我无法创建这样的方法,因为我不知道所需的列集.
我尝试使用带有可变参数列表的方法,但它不想使用它.
public void EditDutyAndTax(params object[] values) { ... }
Run Code Online (Sandbox Code Playgroud)
我现在想的是在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...
Run Code Online (Sandbox Code Playgroud)
但我认为这不会通过代码审查,也不会像想法一样.
我的另一个想法是创建一个动态方法并将其(如果可能)附加到Presenter类或运行时的任何位置,但我不确定这是否有效.
所以,如果你们有任何解决方案,请帮忙.非常感谢!
卡洛斯
在我看来,您将不得不放弃使用 ObjectDataSource 声明性模型,并转到数据源的“老式”设置并在回发中手动绑定网格(或加载,视情况而定),然后手动处理编辑/更新。
DataSource 对象对于如何使用它们非常有讲究 - 如果您尝试超出界限,则无法很好地工作(如果有的话)。
| 归档时间: |
|
| 查看次数: |
2996 次 |
| 最近记录: |