В обычном представлении формы для objectDataSource мы определяем метод для события Updating для добавления значений к редактируемому элементу, что-то вроде этого:
protected void MyFormView_ItemUpdating(object sender, FormViewUpdateEventArgs e)
{
RadComboBox countriesCombo =
(RadComboBox)MyFormView.FindControl("CountryRadComboBox");
// this should never be null, other wise, error is shown
if (!string.IsNullOrEmpty(countriesCombo.SelectedValue))
e.NewValues["CountryId"] = countriesCombo.SelectedValue;
В RadGrid я использую форму редактирования. Insert отлично работает, помещая этот код в метод события PerformInsert:
GridEditFormInsertItem gridItem = (GridEditFormInsertItem)e.Item.OwnerTableView.GetInsertItem();
Hashtable values = new Hashtable();
gridItem.ExtractValues(values);
values["ReferenceId"] = 0;
RadComboBox comboCountries = (RadComboBox)gridItem.FindControl("CountryRadComboBox");
values["CountryID"] = comboCountries.SelectedValue;
e.Item.OwnerTableView.InsertItem(values);
Однако попытка сделать то же самое для редактирования не работает для меня. Это последний шаг, который я не могу сделать. После того, как я изменил значения хеш-таблицы со значением в комбо, как мне указать, что он должен использовать эти значения?
В примерах telerik они работают с DataTable, полученным из источника данных, а затем отображают и выполняют обновление в коде ... не хочу этого делать, я бы хотел, чтобы это работало так же, как вставка делает. Для случая, когда мне не нужно менять какое-либо значение в хеш-таблице, оно работает отлично, обновление работает.
Любая помощь приветствуется
Владимир