gpt4 book ai didi

c# - 具有动态参数的 ObjectDataSource Update 方法

转载 作者:太空狗 更新时间:2023-10-29 23:35:51 26 4
gpt4 key购买 nike

我有这个 DataTable,它有一组不同的列,除了序列号。

|顺序 |值(value) |税收 |职责 |总计 |

应接受具有唯一列名称的任意数量的列。

要显示该表,我需要使用映射到带有 Select 方法的演示器类的 ObjectDataSource。

class Presenter {
[DataObjectMethod(DataObjectMethodType.Select)]
public DataView GetDutyAndTax() { ... }
}

然后将 ObjectDataSource 绑定(bind)到 AutoGenerateColumns 设置为 true 的 GridView。序列是数据键。

到目前为止,这对选择表格有效。当我需要更新表格时,问题就来了。 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 类或运行时的任何地方,但我不确定这是否可行。

所以,如果你们有任何解决方案,请提供帮助。非常感谢!

卡洛斯

最佳答案

在我看来,您将不得不放弃使用 ObjectDataSource 声明性模型,并转到数据源的“老派”设置并在回发中手动绑定(bind)网格(或加载,视情况而定) be),然后手动处理编辑/更新。

DataSource 对象非常关于您如何使用它们的特殊要求 - 如果您尝试超出界限,则不能很好地工作,如果有的话。

关于c# - 具有动态参数的 ObjectDataSource Update 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/148205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com