Hello! Most likely, a stupid question, but I can not find a normal answer. In gridview, the dropdownlist should be used when editing data. I can not save the data after the selection. Tell me, please, how to do it correctly. Thank you in advance! For now, here is the code:

<asp:GridView ID="TasksGridView" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="TasksEntityDataSource" DataKeyNames="task_ID"> <Columns> <asp:TemplateField HeaderText="Статус" SortExpression="task_status"> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Bind("task_status") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:DropDownList ID="StatusDropDownList" runat="server"> <asp:ListItem>Не завершено</asp:ListItem> <asp:ListItem>Завершено</asp:ListItem> </asp:DropDownList> </EditItemTemplate> </asp:TemplateField> </Columns> 

    1 answer 1

    Found a solution. Change the code to:

     <asp:GridView ID="TasksGridView" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="TasksEntityDataSource" DataKeyNames="task_ID" SelectedRowStyle-BackColor="LightGray" OnRowUpdating="TasksGridView_RowUpdating"> <Columns> <asp:TemplateField HeaderText="Статус" SortExpression="task_status"> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Bind("task_status") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:DropDownList ID="StatusDropDownList" runat="server" OnInit="StatusDropDownList_Init"> <asp:ListItem>Не завершено</asp:ListItem> <asp:ListItem>Завершено</asp:ListItem> </asp:DropDownList> </EditItemTemplate> </asp:TemplateField> </Columns> 

    And add

      private DropDownList statusDropDownList; protected void StatusDropDownList_Init(object sendrer, EventArgs e) { statusDropDownList = sendrer as DropDownList; } protected void TasksGridView_RowUpdating(object sender, GridViewUpdateEventArgs e) { var tstatus = Convert.ToString(statusDropDownList.SelectedValue); e.NewValues["task_status"] = tstatus; } 

    Then everything works!