Gridview selectedindexchanging событие не выполняется с элементом управления dropdownliist.
Привет,
Gridview SelectedIndexChanging event not running with dropdownliist control.
Он всегда показывал значение индекса dropdownlist 0.
Когда я нажал на кнопку
Gridview SelectedIndexChanging event
Пожалуйста, помогите мне.
Анкит Агарвал
Что я уже пробовал:
<asp:TemplateField HeaderText="Client Response"> <ItemTemplate> <asp:Label ID="lblClientResponse" runat="server" Text='<%# Eval("ClientResponse") %>' /> <%-- <%#Eval("ClientResponse")%>--%> </ItemTemplate> <EditItemTemplate> <asp:Label ID="lblClientResponse" runat="server" Text='<%# Eval("ClientResponse") %>' Visible="false" /> <asp:DropDownList ID="ddlClientResponse" runat="server" AutoPostBack="True"> <asp:ListItem Value="0">-Select Response-</asp:ListItem> <asp:ListItem Value="1">Interested</asp:ListItem> <asp:ListItem Value="2">Not Interested</asp:ListItem> <asp:ListItem Value="3">Hold</asp:ListItem> <asp:ListItem Value="4">Call Not Received</asp:ListItem> <asp:ListItem Value="5">Not Reachable</asp:ListItem> <asp:ListItem Value="6">Wrong Number</asp:ListItem> <asp:ListItem Value="7">Switched Off</asp:ListItem> </asp:DropDownList> </EditItemTemplate> </asp:TemplateField>
этот код на RowDataBound.
if (e.Row.RowType == DataControlRowType.DataRow) { if (e.Row.RowState == DataControlRowState.Edit || (e.Row.RowState == (DataControlRowState.Edit | DataControlRowState.Alternate))) { string ClientResponse = (e.Row.FindControl("lblClientResponse") as Label).Text; DropDownList ddl = (DropDownList)e.Row.FindControl("ddlClientResponse"); ddl.Items.FindByText(ClientResponse).Selected = true; }
ImageButton img = (ImageButton)e.Row.FindControl("img_user"); if (Status == true) { img.ImageUrl = "~/images/active.png"; } else { img.ImageUrl = "~/images/inactive.png"; } }
protected void gvDeshboard_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) { bool Status = Convert.ToBoolean((gvDeshboard.Rows[e.NewSelectedIndex].FindControl("lblIsActive") as Label).Text); ImageButton img = (ImageButton)gvDeshboard.Rows[e.NewSelectedIndex].FindControl("img_user"); Label lblIsActive = gvDeshboard.Rows[e.NewSelectedIndex].FindControl("lblIsActive") as Label; if (Status == false) { Status = true; ViewState["ClientStatus"] = Status; lblIsActive.Text = Convert.ToString(Status); } else { Status = false; ViewState["ClientStatus"] = Status; lblIsActive.Text = Convert.ToString(Status); //Response.Redirect("SalesExecutive.aspx"); } if (Status == true) { img.ImageUrl = "~/images/active.png"; } else { img.ImageUrl = "~/images/inactive.png"; } string ClientResponse = (gvDeshboard.Rows[e.NewSelectedIndex].FindControl("lblClientResponse") as Label).Text; DropDownList ddl = (DropDownList)gvDeshboard.Rows[e.NewSelectedIndex].FindControl("ddlClientResponse"); ddl.Items.FindByText(ClientResponse).Selected = true; }
Мой код кнопки изображения:-
<asp:TemplateField HeaderText="Deal Status"> <ItemTemplate> <asp:Label ID="lblIsActive" runat="server" Text='<%# Eval("IsActive") %>' /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:ImageButton ID="img_user" runat="server" CommandName="Select" ImageUrl='<%# Eval("IsActive") %>' Width="50px" Height="30px" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Edited By"> <ItemTemplate> <asp:Label ID="lblEditedBy" runat="server" Text='<%# Eval("EditedBy") %>' /> <%--<%#Eval("ClientName")%>--%> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Edit"> <ItemTemplate> <asp:Button ID="btnEdit" runat="server" Text="Edit" CommandName="Edit" /> </ItemTemplate> <EditItemTemplate> <asp:Button ID="btnUpdate" runat="server" CommandName="Update" Text="Update" /> <asp:Button ID="btnCancel" runat="server" CommandName="Cancel" Text="Cancel" /> </EditItemTemplate> </asp:TemplateField>
Karthik_Mahalingam
как ты привязку элементов управления dropdownlist значениями
Agarwal1984
<asp:TemplateField HeaderText="ответ клиента">
<itemtemplate>
&ЛТ;АСП:метка идентификатор="lblClientResponse" атрибут runat="сервер" текст=в'<%# Ивала("ClientResponse") %&ГТ;' /&ГТ;
<%-- <%#Eval("ClientResponse")%>--%>
<edititemtemplate>
&ЛТ;АСП:метка идентификатор="lblClientResponse" атрибут runat="сервер" текст=в'<%# Ивала("ClientResponse") %&ГТ;'
Visible="false" />
&ЛТ;как ASP:dropdownlist с ИД="ddlClientResponse" атрибут runat="сервер" autopostback элемента управления="Правда"и GT;
<asp:ListItem Value="0">-выберите ответ-
<asp:ListItem Value="1">заинтересован
<asp:ListItem Value="2">не интересует
<asp:ListItem Value="3">Hold
<asp:ListItem Value="4">Вызов не получен
<asp:значение ListItem="5">недоступно
<asp:ListItem Value="6">неправильное число
<asp:ListItem Value="7">выключен
Karthik_Mahalingam
почему вы использовали autopostback=true , так как нет никакого события, связанного с ним.
Agarwal1984
на самом деле пользователь может выбрать данные из выпадающего списка, если он нажмет на кнопку редактирования.
Karthik_Mahalingam
попробуйте удалить autopostback=true и проверьте
Agarwal1984
я пытался, но проблема все еще остается.
когда я нажимаю кнопку "мое изображение", а затем кнопку "Редактировать", после этого возникает проблема.
&ЛТ;как ASP:ImageButton с ИД="img_user" атрибут runat="сервер" Имя_команды="выбрать опцию" Url_изображения=в'<%# Ивала("метод isactive") %&ГТ;'
Ширина="50 пикселей" высота="30 пикселей" /&ГТ;
Предположим:- мой существующий выпадающий список выбрал "заинтересован", и я нажал на кнопку статуса, а затем нажмите на кнопку редактирования, так что мои выпадающие данные были изменены " - выберите ответ -".
Если я не нажал кнопку Status (ImageButton), а затем нажмите кнопку Edit, чтобы выпадающий текст сохранялся как "заинтересованный".
Karthik_Mahalingam
попробовать это
если ((например.Подряд.RowType == DataControlRowType.Строкаданных) и усилитель; & (управления gridview1.EditIndex == е.Подряд.Параметр rowindex))
{