In the web application I'm working on, I have two GridViews. Above the first GridView there is a DropDownList, which is used to filter offers based on user separation. This DropDownList no longer works after installing the second GridView inside the UpdatePanel control, and I don't know why and what is the relationship between this and this. Any idea?
Everything worked fine before adding a second GridView to the UpdatePanel control , but now the filter for filtering offers in the first GridView does not work. Any ideas? Any help please?
My ASP.NET Code:
<strong> Division </strong> <asp:DropDownList ID="ddlDivision" runat="server" AppendDataBoundItems="True" AutoPostBack="True" DataSourceID="sqlDataSourceDivision" DataTextField="DivisionShortcut" DataValueField="DivisionShortcut" Width="175px" EnableViewState="False"> <asp:ListItem Value="%">All</asp:ListItem> </asp:DropDownList> <br /> <br /> <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ID" width="950px" CssClass="mGrid" AlternatingRowStyle-CssClass="alt" RowStyle-HorizontalAlign="Center" DataSourceID="SqlDataSource1" OnRowDataBound="GridView1_RowDataBound" > <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> <HeaderStyle Font-Bold = "true" ForeColor="Black" Height="20px"/> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" /> <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" /> <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" /> <asp:BoundField DataField="Username" HeaderText="Username" SortExpression="Username" /> <asp:BoundField DataField="DivisionShortcut" HeaderText="Division" SortExpression="DivisionShortcut" /> <asp:TemplateField HeaderText="Status"> <ItemTemplate> <asp:DropDownList ID="DropDownList" runat="server" DataSourceID="SqlDataSource2" Font-Bold="True" ForeColor="#006666" AppendDataBoundItems="false" DataTextField="Status" DataValueField="ID" AutoPostBack="true" OnDataBound="DropDownList_DataBound" OnSelectedIndexChanged ="DropDownList_SelectedIndexChanged"> </asp:DropDownList> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>" SelectCommand="SELECT dbo.SafetySuggestionsLog.ID, dbo.SafetySuggestionsLog.Title, dbo.SafetySuggestionsLog.Description, dbo.employee.Name, dbo.SafetySuggestionsLog.Username, dbo.Divisions.DivisionShortcut FROM dbo.employee INNER JOINdbo.SafetySuggestionsLog ON dbo.employee.Username = dbo.SafetySuggestionsLog.Username INNER JOIN dbo.Divisions ON dbo.employee.DivisionCode = dbo.Divisions.SapCode" FilterExpression="[DivisionShortcut] like '{0}%'"> <FilterParameters> <asp:ControlParameter ControlID="ddlDivision" Name="DivisionShortcut" PropertyName="SelectedValue" Type="String" /> </FilterParameters> </asp:SqlDataSource> <%--For the DropDownList--%> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>" SelectCommand="SELECT * FROM [SafetySuggestionsStatus]"> </asp:SqlDataSource> <%--Filtering by Division--%> <asp:SqlDataSource ID="sqlDataSourceDivision" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>" SelectCommand="SELECT [DivisionShortcut] FROM [Divisions]"></asp:SqlDataSource> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <Triggers> <asp:AsyncPostBackTrigger ControlID="ddlDivision" EventName="SelectedIndexChanged" /> </Triggers> <ContentTemplate> <br /> <p><h3><b><u>PMOD Divisions' Safety Suggestions List</u></b></h3> <p></p><br /> <asp:Panel ID="Panel1" runat="server"> <asp:GridView ID="GridView2" runat="server" AllowSorting="True" AlternatingRowStyle-CssClass="alt" AutoGenerateColumns="False" CssClass="mGrid" RowStyle-HorizontalAlign="Center" DataSourceID="SqlDataSource4" > <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> <HeaderStyle Font-Bold="true" ForeColor="Black" Height="20px" /> <Columns> <asp:BoundField DataField="SubmittedMonth" HeaderText="Month Submitted" ReadOnly="True" SortExpression="SubmittedMonth" /> <asp:BoundField DataField="DivisionShortcut" HeaderText="Division" SortExpression="DivisionShortcut" /> <asp:BoundField DataField="Username" HeaderText="NetworkID" SortExpression="Username" /> <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" /> <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" /> <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" /> <asp:BoundField DataField="Type" HeaderText="Type" SortExpression="Type" /> <asp:BoundField DataField="Status" HeaderText="Status" SortExpression="Status" /> </Columns> <RowStyle HorizontalAlign="Center" /> </asp:GridView> </asp:Panel> <asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>" SelectCommand="SELECT TOP (100) PERCENT LEFT(DATENAME(month, dbo.SafetySuggestionsLog.DateSubmitted), 3) + '-' + DATENAME(year, dbo.SafetySuggestionsLog.DateSubmitted) AS SubmittedMonth, dbo.Divisions.DivisionShortcut, dbo.SafetySuggestionsLog.Username, dbo.employee.Name, dbo.SafetySuggestionsLog.Title, dbo.SafetySuggestionsLog.Description, dbo.SafetySuggestionsType.Type, dbo.SafetySuggestionsStatus.Status FROM dbo.Divisions INNER JOIN dbo.employee ON dbo.Divisions.SapCode = dbo.employee.DivisionCode INNER JOIN dbo.SafetySuggestionsLog ON dbo.employee.Username = dbo.SafetySuggestionsLog.Username INNER JOIN dbo.SafetySuggestionsType ON dbo.SafetySuggestionsLog.TypeID = dbo.SafetySuggestionsType.ID INNER JOIN dbo.SafetySuggestionsStatus ON dbo.SafetySuggestionsLog.StatusID = dbo.SafetySuggestionsStatus.ID WHERE (DATEDIFF(month, dbo.SafetySuggestionsLog.DateSubmitted, GETDATE()) < 3) ORDER BY dbo.SafetySuggestionsLog.DateSubmitted DESC"> </asp:SqlDataSource> <asp:Button ID="btnPrint" runat="server" OnClick="btnPrint_Click" Text="Print" /> <p></p></p> </ContentTemplate> </asp:UpdatePanel>
Code-Behind:
protected void btnPrint_Click(object sender, EventArgs e) { Session["ctrl"] = Panel1; ScriptManager.RegisterStartupScript(GridView2, GridView2.GetType(), "onclick", "window.open('Print.aspx','PrintMe','height=400px,width=800px,scrollbars=1');", true); } int i = 1; protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Cells[0].Text = i.ToString(); i++; } } protected void DropDownList_DataBound(object sender, EventArgs e) { if (!IsPostBack) ((DropDownList)sender).Items.Insert(0, new ListItem("--Select--", "")); } protected void DropDownList_SelectedIndexChanged(object sender, EventArgs e) { DropDownList ddl = (DropDownList)sender; int suggestionStatus = int.Parse(ddl.SelectedValue); GridViewRow row = (GridViewRow)ddl.NamingContainer; string strID = GridView1.DataKeys[row.RowIndex]["ID"].ToString(); int ID = Int32.Parse(strID);