排序在GridView控件不工作 [英] Sorting in gridview is not working
本文介绍了排序在GridView控件不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
大家好 我想排序功能在网格视图,但它不是working.Can一些身体帮助?
code:
私人字符串ConvertSortDirectionToSql(SortDirection sortDirection)
{
字符串newSortDirection =的String.Empty;
开关(sortDirection)
{
案例SortDirection.Ascending:
newSortDirection =ASC;
打破;
案例SortDirection.Descending:
newSortDirection =DESC;
打破;
}
返回newSortDirection;
}
受保护的数据集FillDataSet()
{
字符串源=数据库= GridTest;服务器=本地主机; Trusted_Connection = YES;
CON =新的SqlConnection(源);
CMD =新的SqlCommand(proc_mygrid,CON);
DS =新的DataSet();
DA =新的SqlDataAdapter(CMD);
da.Fill(DS);
GridView1.DataSource = DS;
GridView1.DataBind();
返回DS;
}
保护无效GridView1_Sorting(对象发件人,GridViewSortEventArgs E)
{
数据表DT = GridView1.DataSource的数据表;
如果(DT!= NULL)
{
数据视图DV =新的数据视图(DT);
dv.Sort = e.SortEx pression ++ ConvertSortDirectionToSql(e.SortDirection);
GridView1.DataSource = DV;
GridView1.DataBind();
}
下面DT即将null.why?请帮助表示感谢。
编辑:
在此输入code< ASP:GridView控件ID =GridView1=服务器的cellpadding =4前景色=#333333
网格线=无AllowPaging =真正的AllowSorting =真,每页=12
onpageindexchanging =GridView1_PageIndexChanging
onsorting =GridView1_Sorting>
修改(总计code)
公共部分类_Default:System.Web.UI.Page
{
SqlConnection的骗子;
的SqlCommand CMD;
数据集DS;
SqlDataAdapter的DA;
保护无效的Page_Load(对象发件人,EventArgs的)
{
}
私人字符串ConvertSortDirectionToSql(SortDirection sortDirection)
{
字符串newSortDirection =的String.Empty;
开关(sortDirection)
{
案例SortDirection.Ascending:
newSortDirection =ASC;
打破;
案例SortDirection.Descending:
newSortDirection =DESC;
打破;
}
返回newSortDirection;
}
受保护的数据集FillDataSet()
{
字符串源=数据库= GridTest;服务器=本地主机; Trusted_Connection = YES;
CON =新的SqlConnection(源);
CMD =新的SqlCommand(proc_mygrid,CON);
DS =新的DataSet();
DA =新的SqlDataAdapter(CMD);
da.Fill(DS);
GridView1.DataSource = DS;
GridView1.DataBind();
返回DS;
}
保护无效的GetValues(对象发件人,EventArgs的)
{
FillDataSet();
}
保护无效GridView1_PageIndexChanging(对象发件人,GridViewPageEventArgs E)
{
INT newPagenumber = e.NewPageIndex;
GridView1.PageIndex = newPagenumber;
GridView1.DataSource = FillDataSet();
GridView1.DataBind();
}
保护无效GridView1_Sorting(对象发件人,GridViewSortEventArgs E)
{
的DataSet ds为FillDataSet();
数据表DT = ds.Tables [0];
如果(DT!= NULL)
{
dt.DefaultView.Sort = e.SortEx pression ++ ConvertSortDirectionToSql(e.SortDirection);
GridView1.DataSource = DT;
GridView1.DataBind();
}
解决方案
code:
私人字符串GetSortDirection(字符串列)
{
字符串sortDirection =DESC;
字符串SORTEX pression =的ViewState [SORTEX pression]作为串;
如果(SORTEX pression!= NULL)
{
如果(SORTEX pression ==列)
{
字符串lastDirection =的ViewState [SortDirection]作为串;
如果((lastDirection = NULL)及!及(lastDirection ==降序))
{
sortDirection =ASC;
}
}
}
的ViewState [SortDirection] = sortDirection;
的ViewState [SORTEX pression] =列;
返回sortDirection;
}
保护无效GridView1_Sorting(对象发件人,GridViewSortEventArgs E)
{
。DataTable的DT =((数据集)会话[myDataSet])表[0];
dt.DefaultView.Sort = e.SortEx pression ++ GetSortDirection(e.SortEx pression);
GridView1.DataSource = DT;
GridView1.DataBind();
}
Dear All, I am trying Sorting functionality in Grid view but its not working.Can some body help?
Code:
private string ConvertSortDirectionToSql(SortDirection sortDirection)
{
string newSortDirection = String.Empty;
switch (sortDirection)
{
case SortDirection.Ascending:
newSortDirection = "ASC";
break;
case SortDirection.Descending:
newSortDirection = "DESC";
break;
}
return newSortDirection;
}
protected DataSet FillDataSet()
{
string source = "Database=GridTest;Server=Localhost;Trusted_Connection=yes";
con = new SqlConnection(source);
cmd = new SqlCommand("proc_mygrid", con);
ds = new DataSet();
da = new SqlDataAdapter(cmd);
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
return ds;
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable dt = GridView1.DataSource as DataTable;
if (dt != null)
{
DataView dv = new DataView(dt);
dv.Sort = e.SortExpression + " " + ConvertSortDirectionToSql(e.SortDirection);
GridView1.DataSource = dv;
GridView1.DataBind();
}
Here dt is coming null.why? pls help thanks.
EDIT:
enter code here <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333"
GridLines="None" AllowPaging="true" AllowSorting="true" PageSize="12"
onpageindexchanging="GridView1_PageIndexChanging"
onsorting="GridView1_Sorting">
EDIT(Total code)
public partial class _Default : System.Web.UI.Page
{
SqlConnection con;
SqlCommand cmd;
DataSet ds;
SqlDataAdapter da;
protected void Page_Load(object sender, EventArgs e)
{
}
private string ConvertSortDirectionToSql(SortDirection sortDirection)
{
string newSortDirection = String.Empty;
switch (sortDirection)
{
case SortDirection.Ascending:
newSortDirection = "ASC";
break;
case SortDirection.Descending:
newSortDirection = "DESC";
break;
}
return newSortDirection;
}
protected DataSet FillDataSet()
{
string source = "Database=GridTest;Server=Localhost;Trusted_Connection=yes";
con = new SqlConnection(source);
cmd = new SqlCommand("proc_mygrid", con);
ds = new DataSet();
da = new SqlDataAdapter(cmd);
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
return ds;
}
protected void GetValues(object sender, EventArgs e)
{
FillDataSet();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
int newPagenumber = e.NewPageIndex;
GridView1.PageIndex = newPagenumber;
GridView1.DataSource = FillDataSet();
GridView1.DataBind();
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
DataSet ds = FillDataSet();
DataTable dt = ds.Tables[0];
if (dt != null)
{
dt.DefaultView.Sort = e.SortExpression + " " + ConvertSortDirectionToSql(e.SortDirection);
GridView1.DataSource = dt;
GridView1.DataBind();
}
解决方案
CODE:
private string GetSortDirection(string column)
{
string sortDirection = "DESC";
string sortExpression = ViewState["SortExpression"] as string;
if (sortExpression != null)
{
if (sortExpression == column)
{
string lastDirection = ViewState["SortDirection"] as string;
if ((lastDirection != null) && (lastDirection == "DESC"))
{
sortDirection = "ASC";
}
}
}
ViewState["SortDirection"] = sortDirection;
ViewState["SortExpression"] = column;
return sortDirection;
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable dt = ((DataSet)Session["myDataSet"]).Tables[0];
dt.DefaultView.Sort = e.SortExpression + " " + GetSortDirection(e.SortExpression);
GridView1.DataSource = dt;
GridView1.DataBind();
}
这篇关于排序在GridView控件不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文