03 Jul 2006

code-beside方式绑定GridView后EnableSortingAndPagingCallbacks不工作

Share

今天对GridView的学习中发现 当用 code-beside方式绑定GridView后(比如我绑一个DataTable)
EnableSortingAndPagingCallbacks不起作用。
在下面地址找到 一些说法

http://forums.asp.net/thread/1230450.aspx

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=103040
记之…

 1    <asp:GridView id=“Gridviewex1” 
 2    runat=“server” 
 3    AllowSorting=“True” 
 4    AutoGenerateColumns=“False”
 5    EnableSortingAndPagingCallbacks=“True” 
 6    OnSorting=“Gridviewex1_Sorting”>
 7        <Columns>
 8            <asp:BoundField DataField=“ProductId” HeaderText=“ProductId” SortExpression=“ProductId” />
 9            <asp:BoundField DataField=“ProductName” HeaderText=“ProductName” SortExpression=“ProductName” />
10            <asp:BoundField DataField=“QuantityPerUnit” HeaderText=“QuantityPerUnit” SortExpression=“QuantityPerUnit” />
11            <asp:BoundField DataField=“UnitsInStock” HeaderText=“UnitsInStock” SortExpression=“UnitsInStock” />
12            <asp:BoundField DataField=“ReorderLevel” HeaderText=“ReorderLevel” SortExpression=“ReorderLevel” />
13            <asp:BoundField DataField=“Discontinued” HeaderText=“Discontinued” SortExpression=“Discontinued” />
14        </Columns>
15    </aspx:GridView>
 1    protected void Page_Load(object sender, EventArgs e)
 2    {
 3
 4        if (!Page.IsPostBack)
 5        {
 6            this.BindGrid(string.Empty);
 7        }

 8    }

 9
10    private void BindGrid(string sortExpression)
11    {
12        DataTable dt = new DataTable();
13        SqlConnection conn = new SqlConnection();
14        conn.ConnectionString = server=wumeibo\wmb;database=northwind;uid=sa;pwd=sa;;
15        SqlCommand cmd = new SqlCommand();
16        cmd.Connection = conn;
17        cmd.CommandType = CommandType.Text;
18        cmd.CommandText = select * from products;
19        SqlDataAdapter adapter = new SqlDataAdapter();
20        adapter.SelectCommand = cmd;
21        adapter.Fill(dt);
22        DataView dv = dt.DefaultView;;
23        if (!string.IsNullOrEmpty(sortExpression))        
24        {
25            dv = dt.DefaultView;
26            dv.Sort = sortExpression;
27        }

28        this.Gridviewex1.DataSource = dv;
29        this.Gridviewex1.DataBind();
30        
31    }

32    protected void Gridviewex1_Sorting(object sender, GridViewSortEventArgs e)
33    {
34        BindGrid(e.SortExpression);
35    }

经过测试 如下方法 可用

 1     protected void Page_Load(object sender, EventArgs e)
 2     {
 3             xx();
 4         
 5     }
 6 
 7     private void xx()
 8     {
 9         SqlConnection conn = new SqlConnection();
10         conn.ConnectionString = server=wumeibo\wmb;database=northwind;uid=sa;pwd=sa;;
11    
12         SqlDataSource source = new SqlDataSource();
13         source.ConnectionString = server=wumeibo\wmb;database=northwind;uid=sa;pwd=sa;;
14         source.SelectCommand = select * from products;
15 
16         this.Gridviewex1.DataSource = source;
17         this.Gridviewex1.DataBind();
18     }

comments powered by Disqus