我有一个dropdownlist控件,里面存放一些部门信息。当选择一个部门,点击查询按钮的时候能够搜索出符合这个部门的信息,并且点击DataGrid的头部的时候能够对查询出的这个部门的信息做正反向排序。部门信息里自动加载数据库表的时候自动添加一个请选择(默认是全选),当我点击请选择的时候查询出全部信息,这时候在点击DataGrid的头部排序就会没有数据(这个我知道,因为数据库里面没有信息)。我想做成在查询全部信息的时候点击DataGrid头部排序的时候也能够对查出的全部信息进行正反排序。怎么做啊。以下是我的代码。
我在bind()方法里做了个判断.if(str==sqlstr)这么写应该不对。
//排序类
public void bind()
{
string str="";
string sqlstr = "select * from SoftwareInfo where department='"+this.ddldepartment.SelectedValue+"'";
string sql = "select * from SoftwareInfo";
if(sqlstr==str)
{
SqlConnection conn = new SqlConnection("server=.;database=softwaremanage;uid=sa;pwd=sa");
SqlDataAdapter da = new SqlDataAdapter(sqlstr, conn);
DataSet ds = new DataSet();
conn.Open();

da.Fill(ds,"SoftwareInfo");

DataView view = ds.Tables["SoftwareInfo"].DefaultView;
string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
view.Sort = sort;
DataGrid.DataSource = view;
DataGrid.DataBind();
conn.Close();
}
 if(str==sql)
{
SqlConnection conn1 = new SqlConnection("server=.;database=softwaremanage;uid=sa;pwd=sa");
SqlDataAdapter da1 = new SqlDataAdapter(sql, conn1);
DataSet ds1 = new DataSet();
conn1.Open();

da1.Fill(ds1, pager.PageSize*(pager.CurrentPageIndex-1),pager.PageSize,"SoftwareInfo");
DataView view1 = ds1.Tables["SoftwareInfo"].DefaultView;
string sort1 = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
view1.Sort = sort1;
DataGrid.DataSource = view1;
DataGrid.DataBind();
conn1.Close();
} }private void DataGrid_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
string sPage = e.SortExpression;
if (ViewState["SortOrder"].ToString() == sPage)
{
if (ViewState["OrderDire"].ToString() == "Desc")
ViewState["OrderDire"] = "ASC";
else
ViewState["OrderDire"] = "Desc";
}
else
{
ViewState["SortOrder"] = e.SortExpression;
}
bind();

}if(!Page.IsPostBack)
{
string strdep = "select department from DepartmentInfo";
dep.Listdep(ddldepartment,strdep); ViewState["SortOrder"] = "sid";
ViewState["OrderDire"] = "ASC"; BindData();
}
public void Listdep(DropDownList userList,string sqlStr) 

SqlConnection conn = new SqlConnection("server=.;database=softwaremanage;uid=sa;pwd=sa"); 
conn.Open(); 
SqlCommand cmd = new SqlCommand(sqlStr, conn); 
SqlDataReader dr = cmd.ExecuteReader(); 
userList.DataSource = dr; 
userList.DataTextField = "department"; 
userList.DataValueField = "department"; 
userList.DataBind(); 
userList.Items.Insert(0, "--请选择--"); 
userList.SelectedIndex = 0; 
dr.Close(); 
conn.Close();