Здравствуйте tamtam, Вы писали:
T>В режиме редактирования одно из полей грида представляется в виде выпадающего списка возможных значений. T>Все работает, но есть проблема. Как установить текущее значение в списке соответствующее значению поля. T>Целый день ищу, ничего не получается. T>На всякий случай ниже фрагмент этого поля:
T> <asp:TemplateColumn HeaderText="статья расходов"> T> <ItemTemplate> T> <asp:label id="BudgetType" runat="server"> T> <%# DataBinder.Eval(Container.DataItem, "budget_type")%> T> </asp:label> T> </ItemTemplate> T> <EditItemTemplate> T> <asp:DropDownList runat="server" T> ID="BudgetTypeList" T> DataSource="<%# BudgetTypeList()%>" T> DataTextField="descript" T> DataValueField="budget_type_id" T> > T> </asp:DropDownList> T> </EditItemTemplate> T> В DropDownList нужно выбрать строку соответствующую label
Привожу пример своего кода.
Нужно у грида обрабатывать событие ItemDataBound.
В моем случае DropDownList называется list.
Думаю все ясно.
private void Grid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
DataRowView Dr = (DataRowView)e.Item.DataItem;
switch (e.Item.ItemType)
{
case ListItemType.EditItem:
{
if (((DropDownList)e.Item.FindControl("list")).Items.FindByText(Dr["NAME"].ToString())!=null)
{
((DropDownList)e.Item.FindControl("list")).Items.FindByText(Dr["NAME"].ToString()).Selected=true;
}
break;
}