数据网格不排序 [英] Data Grid NOT SORTING

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

问题描述




我使用以下代码对数据网格进行排序,但它不起作用。

我已将自动生成列设置为false 。 &安培;设置

每个字段的排序表达式作为该字段的anme ...此网格显示基于

用户搜索的结果..


public static int numberDiv;

private void Page_Load(object sender,System.EventArgs e)

{

//置放用户在这里初始化页面的代码

}

private void btnSearch_Click(object sender,System.EventArgs e)

{

fn();

sqlDataAdapter1.Fill(dsSearch1);


DataGrid1.DataBind();

}


private void DataGrid1_SortCommand(对象源,

System.Web.UI.WebControls.DataGridSortCommandEvent Args e)

{

fn();

sqlDataAdapter1.Fill(dsSearch1);

DataView dv = new DataView(dsSearch1.Tables [0]);

if((numberDiv%2)== 0)

dv.Sort = e.SortExpression +" " +ASC;

else

dv.Sort = e.SortExpression +" " +DESC;

numberDiv ++;

DataGrid1.DataSource = dv;

DataGrid1.DataBind();

}

private void fn()

{

sqlSelectCommand1.Parameters.Clear();

SqlParameter order =

sqlSelectCommand1.Parameters.Add(" @ OrderNo",SqlDbT ype.Int);

if(txtOrder.Text.Equals(String.Empty))

{

order.Value = System.DBNull.Value;

}

else

{

order.Value = int.Parse(txtOrder.Text);

}

SqlParameter startdate =

sqlSelectCommand1.Parameters.Add(" @ StartDate",SqlD bType.DateTime);

if(txtStartDate.Text.Equals(String.Empty))

{

startdate.Value = System.DBNull.Value;

}

else

{

startdate.Value = System.DateTime.Parse(txtStartDate .Text);

}

SqlParameter enddate =

sqlSelectCommand1.Parameters。添加(QUOT; @End Date",SqlDbT ype.DateTime);

if(txtEndDate.Text.Equals(String.Empty))

{

enddate.Value = System.DBNull.Value;

}

else

{

enddate.Value = System.DateTime。 Parse(txtEndDate.Tex t);

}

SqlParameter status =

sqlSelectCommand1.Parameters.Add(" @ Status",SqlDbTy pe .VarChar);

if(txtEndDate.Text.Equals(String.Empty))

{

status.Value = System.DBNull。价值;

}

其他

{

status.Value = ddlStatus.SelectedValue;

}

}

}

-

pmud

Hi,

I am using teh following code for sorting the data grid but it doesnt work.
I have set the auto generate columns to false. & set the sort expression for
each field as the anme of that field... This grid displayes results based on
users search..

public static int numberDiv;
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}
private void btnSearch_Click(object sender, System.EventArgs e)
{
fn();
sqlDataAdapter1.Fill(dsSearch1);

DataGrid1.DataBind();
}

private void DataGrid1_SortCommand(object source,
System.Web.UI.WebControls.DataGridSortCommandEvent Args e)
{
fn();
sqlDataAdapter1.Fill(dsSearch1);
DataView dv = new DataView(dsSearch1.Tables[0]);
if( (numberDiv%2) == 0 )
dv.Sort = e.SortExpression + " " + "ASC";
else
dv.Sort = e.SortExpression + " " + "DESC";
numberDiv++;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}
private void fn()
{
sqlSelectCommand1.Parameters.Clear();
SqlParameter order=
sqlSelectCommand1.Parameters.Add("@OrderNo",SqlDbT ype.Int);
if (txtOrder.Text.Equals(String.Empty))
{
order.Value=System.DBNull.Value;
}
else
{
order.Value=int.Parse(txtOrder.Text);
}
SqlParameter startdate=
sqlSelectCommand1.Parameters.Add("@StartDate",SqlD bType.DateTime);
if (txtStartDate.Text.Equals(String.Empty) )
{
startdate.Value=System.DBNull.Value;
}
else
{
startdate.Value=System.DateTime.Parse(txtStartDate .Text);
}
SqlParameter enddate=
sqlSelectCommand1.Parameters.Add("@EndDate",SqlDbT ype.DateTime);
if (txtEndDate.Text.Equals(String.Empty) )
{
enddate.Value=System.DBNull.Value;
}
else
{
enddate.Value=System.DateTime.Parse(txtEndDate.Tex t);
}
SqlParameter status=
sqlSelectCommand1.Parameters.Add("@Status",SqlDbTy pe.VarChar);
if (txtEndDate.Text.Equals(String.Empty) )
{
status.Value=System.DBNull.Value;
}
else
{
status.Value=ddlStatus.SelectedValue;
}
}
}
--
pmud

推荐答案

在ASC和DESC字符串中添加一个空格字符(" ASC"和 DESC)。

如果你没有那么排序标准将ASC或DESC直接连接到

排序字符串的末尾。

" pmud" <下午** @ discussions.microsoft.com>在消息中写道

news:83 ********************************** @ microsof t.com ...
Add a space character into the ASC and DESC strings (" ASC" and " DESC").
If you don''t then the sort criteria gets ASC or DESC cocatenated right onto
the end of the sort string.
"pmud" <pm**@discussions.microsoft.com> wrote in message
news:83**********************************@microsof t.com...


我正在使用以下代码对数据网格进行排序,但它没有工作。
我有将auto generate列设置为false。 &安培;为每个字段设置排序表达式
作为该字段的anme ...此网格显示基于
用户搜索的结果..

public static int numberDiv;
private void Page_Load(object sender,System.EventArgs e)
//
//用户代码初始化页面
}
私有void btnSearch_Click(object sender,System.EventArgs e)
{
fn();
sqlDataAdapter1.Fill(dsSearch1);

DataGrid1.DataBind(); <私有void DataGrid1_SortCommand(对象源,
System.Web.UI.WebControls.DataGridSortCommandEvent Args e)
{
fn();
sqlDataAdapter1.Fill(dsSearch1);
DataView dv = new DataView(dsSearch1.Tables [0]);
if((numberDiv%2)== 0)
dv.Sort = e.SortExpression + " +ASC;
其他
dv.Sort = e.SortExpression +" " +DESC;
numberDiv ++;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}
private void fn()
{s / // sqlSelectCommand1.Parameters.Clear();
sqlParameter order =
sqlSelectCommand1.Parameters.Add(" @ OrderNo",SqlDbT ype.Int);
if(txtOrder。 Text.Equals(String.Empty))
{
order.Value = System.DBNull.Value;
}

{
order.Value = int.Parse(txtOrder.Text);
}
SqlParameter startdate =
sqlSelectCommand1.Parameters.Add(" @ StartDate",SqlD bType.DateTime);
if(/ txtStartDate.Text.Equals(String.Empty))
{/ / / / / / / / / / / / / / / / / / / / .Value = System.DateTime.Parse(txtStartDate .Text);
}
SqlParameter enddate =
sqlSelectCommand1.Parameters.Add(" @ EndDate",SqlDbT ype.DateTime);
if(txtEndDate.Text.Equals(String.Empty))
{
enddate.Value = System.DBNull.Value;
}
否则
{/ / enddate.Value = System.DateTime.Parse(txtEndDate.Tex t);
}
SqlParameter status =
sqlSelectCommand1.Parameters.Add(" @ Status",SqlDbTy pe.VarChar);
if(txtEndDate.Text.Equals(String.Empty))
{
status.Value = System.DBNull.Value;
}
其他
{
status.Value = ddlStatus.SelectedValue;
}
}
}
-
pmud
Hi,

I am using teh following code for sorting the data grid but it doesnt
work.
I have set the auto generate columns to false. & set the sort expression
for
each field as the anme of that field... This grid displayes results based
on
users search..

public static int numberDiv;
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}
private void btnSearch_Click(object sender, System.EventArgs e)
{
fn();
sqlDataAdapter1.Fill(dsSearch1);

DataGrid1.DataBind();
}

private void DataGrid1_SortCommand(object source,
System.Web.UI.WebControls.DataGridSortCommandEvent Args e)
{
fn();
sqlDataAdapter1.Fill(dsSearch1);
DataView dv = new DataView(dsSearch1.Tables[0]);
if( (numberDiv%2) == 0 )
dv.Sort = e.SortExpression + " " + "ASC";
else
dv.Sort = e.SortExpression + " " + "DESC";
numberDiv++;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}
private void fn()
{
sqlSelectCommand1.Parameters.Clear();
SqlParameter order=
sqlSelectCommand1.Parameters.Add("@OrderNo",SqlDbT ype.Int);
if (txtOrder.Text.Equals(String.Empty))
{
order.Value=System.DBNull.Value;
}
else
{
order.Value=int.Parse(txtOrder.Text);
}
SqlParameter startdate=
sqlSelectCommand1.Parameters.Add("@StartDate",SqlD bType.DateTime);
if (txtStartDate.Text.Equals(String.Empty) )
{
startdate.Value=System.DBNull.Value;
}
else
{
startdate.Value=System.DateTime.Parse(txtStartDate .Text);
}
SqlParameter enddate=
sqlSelectCommand1.Parameters.Add("@EndDate",SqlDbT ype.DateTime);
if (txtEndDate.Text.Equals(String.Empty) )
{
enddate.Value=System.DBNull.Value;
}
else
{
enddate.Value=System.DateTime.Parse(txtEndDate.Tex t);
}
SqlParameter status=
sqlSelectCommand1.Parameters.Add("@Status",SqlDbTy pe.VarChar);
if (txtEndDate.Text.Equals(String.Empty) )
{
status.Value=System.DBNull.Value;
}
else
{
status.Value=ddlStatus.SelectedValue;
}
}
}
--
pmud



嗨斯科特,


我试过但它没有用......其他任何想法?


谢谢


" Scott M."写道:
Hi Scott,

I tried that But it didnt work...Any other ideas?

Thanks

"Scott M." wrote:
在ASC和DESC字符串中添加一个空格字符(ASC和DESC)。
如果你不是那么排序标准将ASC或DESC直接放在
排序字符串的末尾。

" pmud" <下午** @ discussions.microsoft.com>在消息中写道
新闻:83 ********************************** @ microsof t.com。 ..
Add a space character into the ASC and DESC strings (" ASC" and " DESC").
If you don''t then the sort criteria gets ASC or DESC cocatenated right onto
the end of the sort string.
"pmud" <pm**@discussions.microsoft.com> wrote in message
news:83**********************************@microsof t.com...


我正在使用以下代码对数据网格进行排序,但它没有工作。
我设置了自动生成列为false。 &安培;为每个字段设置排序表达式
作为该字段的anme ...此网格显示基于
用户搜索的结果..

public static int numberDiv;
private void Page_Load(object sender,System.EventArgs e)
//
//用户代码初始化页面
}
私有void btnSearch_Click(object sender,System.EventArgs e)
{
fn();
sqlDataAdapter1.Fill(dsSearch1);

DataGrid1.DataBind(); <私有void DataGrid1_SortCommand(对象源,
System.Web.UI.WebControls.DataGridSortCommandEvent Args e)
{
fn();
sqlDataAdapter1.Fill(dsSearch1);
DataView dv = new DataView(dsSearch1.Tables [0]);
if((numberDiv%2)== 0)
dv.Sort = e.SortExpression + " +ASC;
其他
dv.Sort = e.SortExpression +" " +DESC;
numberDiv ++;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}
private void fn()
{s / // sqlSelectCommand1.Parameters.Clear();
sqlParameter order =
sqlSelectCommand1.Parameters.Add(" @ OrderNo",SqlDbT ype.Int);
if(txtOrder。 Text.Equals(String.Empty))
{
order.Value = System.DBNull.Value;
}

{
order.Value = int.Parse(txtOrder.Text);
}
SqlParameter startdate =
sqlSelectCommand1.Parameters.Add(" @ StartDate",SqlD bType.DateTime);
if(/ txtStartDate.Text.Equals(String.Empty))
{/ / / / / / / / / / / / / / / / / / / / .Value = System.DateTime.Parse(txtStartDate .Text);
}
SqlParameter enddate =
sqlSelectCommand1.Parameters.Add(" @ EndDate",SqlDbT ype.DateTime);
if(txtEndDate.Text.Equals(String.Empty))
{
enddate.Value = System.DBNull.Value;
}
否则
{/ / enddate.Value = System.DateTime.Parse(txtEndDate.Tex t);
}
SqlParameter status =
sqlSelectCommand1.Parameters.Add(" @ Status",SqlDbTy pe.VarChar);
if(txtEndDate.Text.Equals(String.Empty))
{
status.Value = System.DBNull.Value;
}
其他
{
status.Value = ddlStatus.SelectedValue;
}
}
}
-
pmud
Hi,

I am using teh following code for sorting the data grid but it doesnt
work.
I have set the auto generate columns to false. & set the sort expression
for
each field as the anme of that field... This grid displayes results based
on
users search..

public static int numberDiv;
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}
private void btnSearch_Click(object sender, System.EventArgs e)
{
fn();
sqlDataAdapter1.Fill(dsSearch1);

DataGrid1.DataBind();
}

private void DataGrid1_SortCommand(object source,
System.Web.UI.WebControls.DataGridSortCommandEvent Args e)
{
fn();
sqlDataAdapter1.Fill(dsSearch1);
DataView dv = new DataView(dsSearch1.Tables[0]);
if( (numberDiv%2) == 0 )
dv.Sort = e.SortExpression + " " + "ASC";
else
dv.Sort = e.SortExpression + " " + "DESC";
numberDiv++;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}
private void fn()
{
sqlSelectCommand1.Parameters.Clear();
SqlParameter order=
sqlSelectCommand1.Parameters.Add("@OrderNo",SqlDbT ype.Int);
if (txtOrder.Text.Equals(String.Empty))
{
order.Value=System.DBNull.Value;
}
else
{
order.Value=int.Parse(txtOrder.Text);
}
SqlParameter startdate=
sqlSelectCommand1.Parameters.Add("@StartDate",SqlD bType.DateTime);
if (txtStartDate.Text.Equals(String.Empty) )
{
startdate.Value=System.DBNull.Value;
}
else
{
startdate.Value=System.DateTime.Parse(txtStartDate .Text);
}
SqlParameter enddate=
sqlSelectCommand1.Parameters.Add("@EndDate",SqlDbT ype.DateTime);
if (txtEndDate.Text.Equals(String.Empty) )
{
enddate.Value=System.DBNull.Value;
}
else
{
enddate.Value=System.DateTime.Parse(txtEndDate.Tex t);
}
SqlParameter status=
sqlSelectCommand1.Parameters.Add("@Status",SqlDbTy pe.VarChar);
if (txtEndDate.Text.Equals(String.Empty) )
{
status.Value=System.DBNull.Value;
}
else
{
status.Value=ddlStatus.SelectedValue;
}
}
}
--
pmud




你能查看numberDiv的值吗?

你能否仔细检查一下SortExpression价值?


" pmud"写道:
Can you check the value of numberDiv?
Can you also double-check you SortExpression value?

"pmud" wrote:
嗨斯科特,

我试过但它没有用......还有其他想法吗?

谢谢你/>
Scott M.写道:
Hi Scott,

I tried that But it didnt work...Any other ideas?

Thanks

"Scott M." wrote:
在ASC和DESC字符串中添加一个空格字符(ASC和DESC)。
如果你不是那么排序标准将ASC或DESC直接放在
排序字符串的末尾。

" pmud" <下午** @ discussions.microsoft.com>在消息中写道
新闻:83 ********************************** @ microsof t.com。 ..
Add a space character into the ASC and DESC strings (" ASC" and " DESC").
If you don''t then the sort criteria gets ASC or DESC cocatenated right onto
the end of the sort string.
"pmud" <pm**@discussions.microsoft.com> wrote in message
news:83**********************************@microsof t.com...


我正在使用以下代码对数据网格进行排序,但它没有工作。
我设置了自动生成列为false。 &安培;为每个字段设置排序表达式
作为该字段的anme ...此网格显示基于
用户搜索的结果..

public static int numberDiv;
private void Page_Load(object sender,System.EventArgs e)
//
//用户代码初始化页面
}
私有void btnSearch_Click(object sender,System.EventArgs e)
{
fn();
sqlDataAdapter1.Fill(dsSearch1);

DataGrid1.DataBind(); <私有void DataGrid1_SortCommand(对象源,
System.Web.UI.WebControls.DataGridSortCommandEvent Args e)
{
fn();
sqlDataAdapter1.Fill(dsSearch1);
DataView dv = new DataView(dsSearch1.Tables [0]);
if((numberDiv%2)== 0)
dv.Sort = e.SortExpression + " +ASC;
其他
dv.Sort = e.SortExpression +" " +DESC;
numberDiv ++;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}
private void fn()
{s / // sqlSelectCommand1.Parameters.Clear();
sqlParameter order =
sqlSelectCommand1.Parameters.Add(" @ OrderNo",SqlDbT ype.Int);
if(txtOrder。 Text.Equals(String.Empty))
{
order.Value = System.DBNull.Value;
}

{
order.Value = int.Parse(txtOrder.Text);
}
SqlParameter startdate =
sqlSelectCommand1.Parameters.Add(" @ StartDate",SqlD bType.DateTime);
if(/ txtStartDate.Text.Equals(String.Empty))
{/ / / / / / / / / / / / / / / / / / / / .Value = System.DateTime.Parse(txtStartDate .Text);
}
SqlParameter enddate =
sqlSelectCommand1.Parameters.Add(" @ EndDate",SqlDbT ype.DateTime);
if(txtEndDate.Text.Equals(String.Empty))
{
enddate.Value = System.DBNull.Value;
}
否则
{/ / enddate.Value = System.DateTime.Parse(txtEndDate.Tex t);
}
SqlParameter status =
sqlSelectCommand1.Parameters.Add(" @ Status",SqlDbTy pe.VarChar);
if(txtEndDate.Text.Equals(String.Empty))
{
status.Value = System.DBNull.Value;
}
其他
{
status.Value = ddlStatus.SelectedValue;
}
}
}
-
pmud
Hi,

I am using teh following code for sorting the data grid but it doesnt
work.
I have set the auto generate columns to false. & set the sort expression
for
each field as the anme of that field... This grid displayes results based
on
users search..

public static int numberDiv;
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}
private void btnSearch_Click(object sender, System.EventArgs e)
{
fn();
sqlDataAdapter1.Fill(dsSearch1);

DataGrid1.DataBind();
}

private void DataGrid1_SortCommand(object source,
System.Web.UI.WebControls.DataGridSortCommandEvent Args e)
{
fn();
sqlDataAdapter1.Fill(dsSearch1);
DataView dv = new DataView(dsSearch1.Tables[0]);
if( (numberDiv%2) == 0 )
dv.Sort = e.SortExpression + " " + "ASC";
else
dv.Sort = e.SortExpression + " " + "DESC";
numberDiv++;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}
private void fn()
{
sqlSelectCommand1.Parameters.Clear();
SqlParameter order=
sqlSelectCommand1.Parameters.Add("@OrderNo",SqlDbT ype.Int);
if (txtOrder.Text.Equals(String.Empty))
{
order.Value=System.DBNull.Value;
}
else
{
order.Value=int.Parse(txtOrder.Text);
}
SqlParameter startdate=
sqlSelectCommand1.Parameters.Add("@StartDate",SqlD bType.DateTime);
if (txtStartDate.Text.Equals(String.Empty) )
{
startdate.Value=System.DBNull.Value;
}
else
{
startdate.Value=System.DateTime.Parse(txtStartDate .Text);
}
SqlParameter enddate=
sqlSelectCommand1.Parameters.Add("@EndDate",SqlDbT ype.DateTime);
if (txtEndDate.Text.Equals(String.Empty) )
{
enddate.Value=System.DBNull.Value;
}
else
{
enddate.Value=System.DateTime.Parse(txtEndDate.Tex t);
}
SqlParameter status=
sqlSelectCommand1.Parameters.Add("@Status",SqlDbTy pe.VarChar);
if (txtEndDate.Text.Equals(String.Empty) )
{
status.Value=System.DBNull.Value;
}
else
{
status.Value=ddlStatus.SelectedValue;
}
}
}
--
pmud




这篇关于数据网格不排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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