Hello,
Gridview SelectedIndexChanging event not running with dropdownliist control.
It was showing always 0 index value of dropdownlist.
When i clicked on
Gridview SelectedIndexChanging event
Please help me.
Ankit Agarwal
What I have tried:
<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>
this code on 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);
}
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;
}
My image button code:-
<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>