使用ASP.NET中的GridView控件可以快速实现数据的呈现和管理。下面是灵活使用GridView控件的攻略:
1.绑定数据源
GridView控件的数据源可以是DataTable、DataSet、Array等多种类型的对象。以下是以DataTable作为数据源的示例:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BindGridView();//首次只需要绑定一次数据
}
private void BindGridView()
{
string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connStr))
{
string sql = "SELECT * FROM Products";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();//GridView1绑定数据源
}
}
2.自定义列
可以通过字段(ItemTemplate)、绑定事件(RowDataBound)或自定义控件(TemplateField)等方法来自定义列。以下是使用TemplateField自定义列的示例:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="ProductName">
<ItemTemplate>
<asp:HyperLink ID="hlProductName" runat="server" Text='<%# Eval("ProductName") %>'
NavigateUrl='<%# "ProductDetails.aspx?ProductID=" + Eval("ProductID") %>'>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
3.排序和分页
可以通过AllowSorting和AllowPaging属性实现GridView控件的排序和分页功能。以下是启用排序和分页的示例:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
AllowSorting="True" OnSorting="GridView1_Sorting"
AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging">
<PagerSettings Mode="NumericFirstLast" />
<!--PagerSettings节点定义翻页显示样式-->
<Columns><!--省略自定义列-->
</Columns>
</asp:GridView>
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable dt = ((DataTable)GridView1.DataSource).Copy();
dt.DefaultView.Sort = e.SortExpression + " " + GetSortDirection(e.SortExpression);
GridView1.DataSource = dt.DefaultView.ToTable();
GridView1.DataBind();
}
private string GetSortDirection(string column)
{
// 获取当前排序列的方向
string sortExpression = ViewState["SortExpression"] as string;
if (sortExpression != null && sortExpression == column)
{
string lastSortDirection = ViewState["SortDirection"] as string;
if (lastSortDirection != null && lastSortDirection == "ASC")
return "DESC";
}
return "ASC";
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
BindGridView();//重新绑定数据源
}
上述攻略中的示例只是其中的两条,具体使用方法可以根据需要选择合适的示例进行参考。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:灵活使用asp.net中的gridview控件 - Python技术站