У меня есть этот DataTable, который имеет различный набор столбцов, кроме порядкового номера.
| Последовательность | Значение | Налог | Дежурный | Всего |
Любое количество столбцов должно быть принято с уникальными именами столбцов.
Чтобы отобразить эту таблицу, мне нужно использовать ObjectDataSource, сопоставленный с классом презентатора с помощью метода Select.
class Presenter {
[DataObjectMethod(DataObjectMethodType.Select)]
public DataView GetDutyAndTax() { ... }
}
ObjectDataSource затем привязывается к GridView с AutoGenerateColumns, установленным в true. Последовательность - это ключ данных.
Пока это работает для выбора таблицы. Проблема возникает, когда мне нужно обновить таблицу. 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 или где угодно во время выполнения, но я не совсем уверен, сработает ли это.
Так что, если у вас, ребята, есть какое-то решение, пожалуйста, помогите. Большое спасибо!
Carlos