使用代码排序gridview [英] Sorting gridview using code behind

查看:95
本文介绍了使用代码排序gridview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

亲爱的,



我写信是为了寻求帮助,使用代码隐藏方法在我的gridview上创建排序功能。这是我迄今为止所拥有的,它不会在客户端排序任何东西。我还在以下行中收到以下错误 (无法将类型'void'隐式转换为'System.Data.DataTable')



Dear all,

I am writing to seek help in creating 'sorting' feature on my gridview using code behind method. This is what i have so far and currently, its not sorting anything on the client-side. I am also getting the following error (Cannot implicitly convert type 'void' to 'System.Data.DataTable'), on the following line:

DataTable table = BindGridview();





任何我缺少任何其他信息?任何帮助将非常感谢。





Any I missing any additional information? Any help would be very much appreciated.

<asp:GridView ID="GridView1" runat="server" AllowSorting="True" >
    </asp:GridView>







protected void SortRecords(object sender, GridViewSortEventArgs e)
{
    string sortExpression = e.SortExpression;
    string direction = string.Empty;

    if (SortDirection == SortDirection.Ascending)
    {
        SortDirection = SortDirection.Descending;
        direction = " DESC";
    }
    else
    {
        SortDirection = SortDirection.Ascending;
        direction = " ASC";
    }
   DataTable table = BindGridview();
   table.DefaultView.Sort = sortExpression + direction;
   GridView1.DataSource = table;
   GridView1.DataBind();
}

public SortDirection SortDirection
{
    get
    {
        if (ViewState["SortDirection"] == null)
        {
            ViewState["SortDirection"] = SortDirection.Ascending;
        }
        return (SortDirection)ViewState["SortDirection"];
    }
    set
    {
        ViewState["SortDirection"] = value;

    }

}





其他功能方法:< br $> b $ b



Further functional methods:

protected void BindGridview()
     //public DataSet BindGridView()
    {

        string query = "select top 100 [Name], CUSIP, ISINs, [Size (m)],[Current size],priceTalk, [Decimal price], Cover, Type, UploadDate  from [dbo].[database_BWICs]";
        DataSet dt = GetData(query);
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }

    private static DataSet GetData(string query)
    {
        DataSet dt = new DataSet();
        SqlCommand cmd = new SqlCommand(query);
        String constr = ConfigurationManager.ConnectionStrings["####"].ConnectionString;
        SqlConnection con = new SqlConnection(constr);
        con.Open();
        SqlDataAdapter sda = new SqlDataAdapter();
        cmd.CommandType = CommandType.Text;
        cmd.Connection = con;
        sda.SelectCommand = cmd;
        sda.Fill(dt);
        return dt;
    }

推荐答案

Quote:




DataTable table = this.BindGridView();



不包含'BindGridView'的定义,也没有扩展方法'BindGridView'接受第一个参数


does not contain a definition for 'BindGridView' and no extension method 'BindGridView' accepting a first argument

Exception非常清楚。没有这样的方法。



我想你应该这样做...

The Exception is quite clear. There is no method like that.

I guess you should do like...

DataTable table = BindGridView();



否则发布功能代码。


Else post the function code.


这样做..



do like this..

protected  DataTable GetDataTable () // new method
     
    {

        string query = "select top 100 [Name], CUSIP, ISINs, [Size (m)],[Current size],priceTalk, [Decimal price], Cover, Type, UploadDate  from [dbo].[database_BWICs]";
        DataSet dt = GetData(query);
       

return dt.Tables[0];
 
    }










protected void BindGridview()  // modify this method
     //public DataSet BindGridView()
    {
 
        var dt = GetDataTable( );
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }













protected void SortRecords(object sender, GridViewSortEventArgs e)
    {
        string sortExpression = e.SortExpression;
        string direction = string.Empty;

        if (SortDirection == SortDirection.Ascending)
        {
            SortDirection = SortDirection.Descending;
            direction = " DESC";
        }
        else
        {
            SortDirection = SortDirection.Ascending;
            direction = " ASC";
        }
       DataTable table = GetDataTable();
       table.DefaultView.Sort = sortExpression + direction;
       GridView1.DataSource = table;
       GridView1.DataBind();
    }

    public SortDirection SortDirection
    {
        get
        {
            if (ViewState["SortDirection"] == null)
            {
                ViewState["SortDirection"] = SortDirection.Ascending;
            }
            return (SortDirection)ViewState["SortDirection"];
        }
        set
        {
            ViewState["SortDirection"] = value;

        }

    }


这篇关于使用代码排序gridview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆