使用代码排序gridview [英] Sorting gridview using code behind
问题描述
亲爱的,
我写信是为了寻求帮助,使用代码隐藏方法在我的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;
}
推荐答案
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屋!