Click here to Skip to main content
16,018,904 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi .
I have a SqlDataSource in my aspx page and it had a default Select query . i used a Gridview for show the data in SqlDataSource and enabled paging . everything is OK .

But when i change Select query of datasource from code-behind and then Bind gridview , data doesn't change in all page . only current page data change and when navigate between other pages OLD query data seen again.

Where is problem ?

ASP.Net Code :
ASP.NET
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:test1ConnectionString %>" OnSelecting="SqlDataSource1_Selecting" SelectCommand="SELECT        quran_simple.text, trjm_fa_ayati.tr AS Expr5
FROM            trjm_fa_ayati INNER JOIN
                         quran_simple ON trjm_fa_ayati.ID = quran_simple.id"></asp:SqlDataSource>
    
    </div>
        <br />
        <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField DataField="text" HeaderText="text" SortExpression="text" />
                <asp:BoundField DataField="Expr5" HeaderText="Expr5" SortExpression="Expr5" />
            </Columns>
        </asp:GridView>
        <br />
        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
            <asp:ListItem>Test1</asp:ListItem>
            <asp:ListItem>Test2</asp:ListItem>
            <asp:ListItem>Test3</asp:ListItem>
        </asp:DropDownList>
        <br />
        <br />
    </form>
</body>
</html>


C# Code :

C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Query;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        

    }

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        switch (DropDownList1.SelectedIndex)
        {
            case 0:
                SqlDataSource1.SelectCommand = "SELECT quran_simple.text, trjm_fa_moezzi.tr AS Expr5 FROM  trjm_fa_moezzi INNER JOIN quran_simple ON trjm_fa_moezzi.ID = quran_simple.id";
                GridView1.DataBind();
                break;

            case 1:
                SqlDataSource1.SelectCommand = "SELECT quran_othmani.text, trjm_fa_makarem.tr AS Expr5 FROM  trjm_fa_makarem INNER JOIN quran_othmani ON trjm_fa_makarem.ID = quran_othmani.id";
                GridView1.DataBind();
                break;

            case 2:
                SqlDataSource1.SelectCommand = "SELECT quran_othmani.text, trjm_fa_moezzi.tr AS Expr5 FROM  trjm_fa_moezzi INNER JOIN quran_othmani ON trjm_fa_moezzi.ID = quran_othmani.id";
                GridView1.DataBind();
                break;

            default:
                break;
        }
    }
}
Posted
Updated 3-Aug-13 11:01am
v2
Comments
Srinivas Kalabarigi 3-Aug-13 16:06pm    
Can you show us the code?
[no name] 3-Aug-13 16:07pm    
You expect someone to tell you what is wrong with your code without seeing it?
unforgiven.1791 3-Aug-13 17:01pm    
Sorry for That - code's added .

1 solution

implement the page_indexchanging Event of gridview
and call selectedchanged of dropdownlist

C#
protected void GridView1_PagIndexchangin(object sender, GridViewPageEventArgs e)
{
DropDownList1_SelectedIndexChanged(null,null)
} 
 
Share this answer
 
Comments
unforgiven.1791 4-Aug-13 12:58pm    
Thank's. It work . Can say what this code do ?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900