必須設定 AllowSorting="True",並在 BoundColumn 設定 SortExpression。

前台aspx code︰

<asp:datagrid  runat="server" id="DataGridInfo"  AllowSorting="True"  OnSortCommand="DataGridInfo_Sorting">

<Columns>
         <asp:BoundColumn Visible="False" DataField="ID" ReadOnly="True" HeaderText="ID">
                </asp:BoundColumn>
                 <asp:BoundColumn DataField="GameName" ReadOnly="True" HeaderText="比賽名稱"
SortExpression="GameName">
                 <HeaderStyle></HeaderStyle>
                        <ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:BoundColumn>                                        
         </Columns>

</asp:datagrid>

 

後台cs code︰

#region//********初始化訊息********
protected void Page_Load(object sender, System.EventArgs e)
{
    if(!IsPostBack)
    {
        //預設排序
        ViewState["sortExpression"] = "ID";
        ViewState["sort"] = " DESC";

        //加載資料
        LoadDataInfo();
    }
}
#endregion

#region//****加載資料列表****
private void LoadDataInfo()
{
    string strSql="select ID,GameName from DataInfo";
    string strConn=ConfigurationManager.AppSettings["strConn"];
    SqlConnection objConn=new SqlConnection(strConn);
    SqlDataAdapter objCmd=new SqlDataAdapter(strSql,objConn);
    DataSet objDS=new DataSet();
    objCmd.Fill(objDS, "DataInfo");

    //排序
    objDS.Tables["DataInfo"].DefaultView.Sort = ViewState["sortExpression"].ToString() + ViewState["sort"].ToString();

    DataGridInfo.DataSource = objDS.Tables["DataInfo"].DefaultView;
    DataGridInfo.DataBind();
    objCmd.Dispose();
    objDS.Dispose();
    objConn.Dispose();
}
#endregion

#region//****DataGrid排序事件****
protected void DataGridInfo_Sorting(object sender, DataGridSortCommandEventArgs e)
{
    ViewState["sortExpression"] = e.SortExpression;//抓前台SortExpression
    if (ViewState["sort"].ToString() == " DESC")
    {
        ViewState["sort"] = " ASC";
        LoadDataInfo();//加載資料
    }
    else
    {
        ViewState["sort"] = " DESC";
        LoadDataInfo();//加載資料
    }

}
#endregion

魔法魚 發表在 痞客邦 PIXNET 留言(0) 人氣()