Agarwal1984 Ответов: 0

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))
{

0 Ответов