Помогите получить SelectedItem в DropDownList из EditItemTemplate!

n_string
Дата: 01.06.2010 13:37:05
Помогите получить SelectedItem в DropDownList из EditItemTemplate!

В GridView в EditItemTemplate находится DropDownList с другим источником данных.
Когда пользователь переходит в режим редактирования строки, DropDownList заполняю в MyGridView_OnRowDataBound методе, например, ddlTypeEdit.DataSource = StreamData.GetData();
Затем в режиме редактирования я назначаю SelectedValue (пришлось использовать HiddenField чтобы устанавливать нужное значение из источника данных GridView). Теперь возникла другая проблема, как определить SelectedValue у DropDownList, когда пользователь нажмет «Сохранить».

if (e.CommandName == "UpdateColumn")
            {
                int rowID = Convert.ToInt32(e.CommandArgument);
                DropDownList ddlTypeEdit = gdvColumns.Rows[rowID].FindControl("ddlTypeEdit") as DropDownList;
                TextBox txbLength = gdvColumns.Rows[rowID].FindControl("txbLength") as TextBox;
                TextBox txbNameEdit = gdvColumns.Rows[rowID].FindControl("txbNameEdit") as TextBox;
                ReadStreamData.UpdateColumn(txbNameEdit.Text, Convert.ToInt32(txbLength.Text), ddlTypeEdit.SelectedItem, rowID);
                gdvColumns.EditIndex = -1;
            }

Не могу получить выбранный пользователем ddlTypeEdit.SelectedItem, который всегда показывает первый ListItem в DropDownList.
Предполагаю возможное решение, как добавить еще один HiddenField и назначать ему Value (по событию на клиенте OnSelectedIndexChanged), когда пользователь выберет в DropDownList нужное значение.

Коллеги! Если есть, стандартное решение проблемы, прошу поделиться.
Zoria
Дата: 01.06.2010 13:54:12
n_string,

по-моему тут - все стандартное:
http://www.asp.net/data-access/tutorials/customizing-the-data-modification-interface-cs
и никаких "хидденов", как и считывания значений из текстбоксов...можно, чисто теоретически, но не нужно :-)

извините за "не ссылку" что-то мой браузер шалит, похоже.
Модератор: не проблема, отредактировал
n_string
Дата: 01.06.2010 14:10:39
Спасибо, ссылку прочитал, к сожалению у меня структура сложней и источники данных разнородные. Вначале я так и делал, но потом пришлось от этой схемы отказаться. Однако подумаю.
n_string
Дата: 01.06.2010 14:18:19
Пример кода
Zoria
Дата: 01.06.2010 14:45:30
n_string
Пример кода

иван-иваныч. мне ли вас учить примеры делать :(
Zoria
Дата: 01.06.2010 14:47:02
n_string
Пример кода

иван-иваныч. мне ли вас учить примеры делать :(
я же его запустить не могу, будьте добры, что-нибудь рабочее и только с проблемной зоной :)
n_string
Дата: 01.06.2010 15:00:48
К сожалению, это верхушка айсберга. Тестовый пример сделать не получится. Можно только понять какие методы использую. Наверое, лучше javascript применить и назначать value to hidden field.
n_string
Дата: 01.06.2010 16:28:46
В итоге сделал через javascript:
<script type="text/javascript">
    function AssignValue(ddl, field){       
        document.getElementById(field).value = ddl[document.getElementById(ddl.id).selectedIndex].text;      
    }
</script>
В коде назначаю onchange в OnRowDataBound

ddlTypeEdit.Attributes.Add("onchange", "AssignValue(this, '" + ((HiddenField)e.Row.FindControl("hdfEdit")).ClientID + "')");

Zoria, спасибо за участие.

PS. Is it time about the summer?
Zoria
Дата: 01.06.2010 16:55:52
n_string
В итоге сделал через javascript
Zoria, спасибо за участие.
PS. Is it time about the summer?

будет время выведу ваш "пример" на показательный уровень:)
а вот зы я - no comprende :)
n_string
Дата: 01.06.2010 17:09:48
Zoria
n_string
В итоге сделал через javascript
Zoria, спасибо за участие.
PS. Is it time about the summer?

будет время выведу ваш "пример" на показательный уровень:)
а вот зы я - no comprende :)

Думаю, этот прием оправдан только в моем случае, так как все события происходят в разный период времени,
содержимое DropDownList меняется тоже в каждом ряду и SelectedValue приходит из другого источника.
Видимо поэтому стандартные приемы не работают:)

PS. ¿Entiendes lo que he dicho? Pasé un par de años en España ...