Radgrid: Изменить извлеченные значения в команде обновления для автоматического обновления - PullRequest
0 голосов
/ 28 марта 2012

В обычном представлении формы для 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, полученным из источника данных, а затем отображают и выполняют обновление в коде ... не хочу этого делать, я бы хотел, чтобы это работало так же, как вставка делает. Для случая, когда мне не нужно менять какое-либо значение в хеш-таблице, оно работает отлично, обновление работает.

Любая помощь приветствуется Владимир

1 Ответ

1 голос
/ 28 марта 2012

Если я не ошибаюсь, извлеченные значения уже должны быть установлены на выбранное значение раскрывающегося списка. Попробуйте использовать Bind, чтобы установить выбранное значение в разметке:

<telerik:RadComboBox ID="ddlCountries" runat="server" 
    SelectedValue='<%# Bind("CountryID") %>' ...>
...