datagrid行排序和筛选

<form runat="server">

Select only Titles containing the text:
<ASP:TextBox id="txtFindText" runat="server" />
<ASP:Button id="cmdFind" Text="Find" runat="server" /><p />

<ASP:DataGrid id="MyDataGrid" runat="server"
EnableViewState="False"
CellPadding="5"
GridLines="None"
HeaderStyle-BackColor="silver"
HeaderStyle-HorizontalAlign="center"
FooterStyle-BackColor="silver"
ShowFooter="True"
AllowSorting="True" //允许排序
OnSortCommand="SortRows" //声明排序处理函数
/>

</form>
以下是脚本:
<script language="C#" runat="server">

string gstrSortOrder;// to hold the sort order
string gstrFindText;// to hold the filter expression

void Page_Load(Object sender, EventArgs e)
{
if (Page.IsPostBack)
{
// set the value to be used for the RowFilter on the DataView
gstrFindText = "Title LIKE '*" + txtFindText.Text + "*'";
}
else
{
// set the default values for the sort string and filter text box
gstrSortOrder = "ISBN";
txtFindText.Text = "ASP";
}

// recreate the data set and bind to the DataGrid control
BindDataGrid();
}


void SortRows(Object objSender, DataGridSortCommandEventArgs objArgs )
{
// runs when the column headings in the DataGrid are clicked

// get the sort expression (name of the column heading that was clicked)
//得到排序索引值
gstrSortOrder = objArgs.SortExpression.ToString();

// recreate the data set and bind to the DataGrid control
BindDataGrid();
}


void BindDataGrid()
{
// get connection string from ..\global\connect-strings.ascx user control
string strConnect = ctlConnectStrings.OLEDBConnectionString;

// create a SQL statement to select some rows from the database
string strSelect = "SELECT * FROM BookList";

// create a variable to hold an instance of a DataView object
DataView objDataView;

// get DataView from get-dataview-control.ascx user control
objDataView = ctlDataView.GetDataView(strConnect, strSelect);

if (objDataView == null)
return;

// sort the rows in the DataView into the specified order
//排序
objDataView.Sort = gstrSortOrder;

// select the rows in the DataView that match the filter
//设置筛选
objDataView.RowFilter = gstrFindText;

// set the DataSource property of the DataList
MyDataGrid.DataSource = objDataView;

// and bind the control to the data
MyDataGrid.DataBind();
}

</script>
注意点:
DataGridSortCommandEventArgs objArgs
gstrSortOrder = objArgs.SortExpression.ToString();
objDataView.Sort = gstrSortOrder;
objDataView.RowFilter = gstrFindText;

你可能感兴趣的:(sql,c,SQL Server,脚本,asp)