ASP.NET(C#) + Sql Server 开发WebForm
小弟的代码是这样的:
string SortOrder;
private void Page_Load(object sender, System.EventArgs e)//Dg_Client为DataGrid的ID
{
if (SortOrder == null)
{
SortOrder = "ClientNum";
}
this.Dg_Client.DataSource = LoadDataSource();
this.Dg_Client.DataBind();
}
private void Dg_Client_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)//排序函数
{
SortOrder = e.SortExpression.ToString();
this.Dg_Client.DataSource = LoadDataSource();
this.Dg_Client.DataBind();
}
ICollection LoadDataSource()//读取数据的函数
{
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection("server = localhost; integrated security=SSPI; database = test");//连接数据库
SqlDataAdapter da = new SqlDataAdapter("select * from Client", conn);
da.Fill(ds, "Client");
if (SortOrder != null)
{
ds.Tables["Client"].DefaultView.Sort = SortOrder;
}
return ds.Tables["Client"].DefaultView;
}
我的问题是:
1、这样的话,只能单项排序,不能进行正反双向排序!2、我把DataGrid的AutoGenerateColumns属性设置为False,并且自己通过向导填加了“模板列”,这样的话排序的功能就不能用了!请高手为小弟指点一下,谢谢!
学习,关注……
小弟的代码是这样的:
string SortOrder;
private void Page_Load(object sender, System.EventArgs e)//Dg_Client为DataGrid的ID
{
if (SortOrder == null)
{
SortOrder = "ClientNum";
}
this.Dg_Client.DataSource = LoadDataSource();
this.Dg_Client.DataBind();
}
private void Dg_Client_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)//排序函数
{
SortOrder = e.SortExpression.ToString();
this.Dg_Client.DataSource = LoadDataSource();
this.Dg_Client.DataBind();
}
ICollection LoadDataSource()//读取数据的函数
{
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection("server = localhost; integrated security=SSPI; database = test");//连接数据库
SqlDataAdapter da = new SqlDataAdapter("select * from Client", conn);
da.Fill(ds, "Client");
if (SortOrder != null)
{
ds.Tables["Client"].DefaultView.Sort = SortOrder;
}
return ds.Tables["Client"].DefaultView;
}
我的问题是:
1、这样的话,只能单项排序,不能进行正反双向排序!2、我把DataGrid的AutoGenerateColumns属性设置为False,并且自己通过向导填加了“模板列”,这样的话排序的功能就不能用了!请高手为小弟指点一下,谢谢!
学习,关注……
解决方案 »
- 使用了return window.showModalDialog时,如何能够【再次】刷新弹出窗体的数据即执行Page_Load事件
- 急,请大家帮忙,先谢谢了,字符串拆分问题
- js如何给Gridview编辑模板列的文本框赋值
- 关于checkbox无法保存其状态的问题
- 求一条语句
- 如何保留xml节点的空格
- 在DataBinder.Eval,DataBinder绑定的项不能为继承的属性,急.............高手请入
- 怎么向网络映射磁盘写入文件,先感谢进来顶的朋友!
- 问一个调用存储过程的问题。
- 简
- Web Service 返回的是.NET专用的 DataSet 数据类型,在别的系统调用时如何识别这个类型呢?
- 清空家财求助,关于下拉列表的问题
参考
Code Behind:
Private Sub DataGridStaff_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles DataGridStaff.SortCommand
Me.StaffData = Me.GetStaffInfo(e.SortExpression)
Me.BindData()
End Sub Private Function GetStaffInfo(ByVal orderBy As String) As DataSet
Dim SQLString As String
Dim paraList() As SqlParameter If Me.StaffID = -1 Then
SQLString = "SELECT TOP 100 * FROM tStaff ORDER BY " & orderBy
Else
SQLString = "SELECT * FROM tStaff WHERE iIDST = @staffID ORDER BY " & orderBy
Dim sqlParameter As New SqlParameter("@staffID", Me.StaffID)
paraList = New SqlParameter() {sqlParameter}
End If Return CommonClass.GetData(SQLString, paraList)
End Function Private Sub BindData()
Me.DataGridStaff.DataSource = Me.StaffData.Tables("tstaff").DefaultView
Me.DataGridStaff.DataBind()
Me.lblRecordCount.Text = CType(Me.DataGridStaff.DataSource, DataView).Count Dim isNilRevord As Boolean = (Me.StaffData.Tables("tstaff").DefaultView.Count = 0)
Me.LabelMessage.Text = IIf(isNilRevord, "No Record Found!", "")
End Sub
如果设置为False,那么连单向排序也不行了啊!各位大侠有兴趣的话就试一下我的代码,帮我看看如何解决这个难题!!!学习,关注……