【发布时间】:2018-03-22 21:07:51
【问题描述】:
我有一个在运行时填充的网格视图:
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333"
GridLines="None" OnSorting="GridView1_Sorting" OnSorted="GridView1_Sorted"
OnPageIndexChanging="GridView1_PageIndexChanging">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
<Columns>
</Columns>
</asp:GridView>
protected void Page_Load(object sender, EventArgs e)
{
LoadData();
}
private void LoadData()
{
TSCDB = new TSCDB();
GridView1.DataSource = TSCDB.TsCiTAllOrders
.Where(x => x.DeletedDate == null && x.StatusName != "Cancelled")
.AsEnumerable()
.ToList();
GridView1.AllowPaging = true;
GridView1.PageSize = 10;
GridView1.AllowSorting = true;
GridView1.DataBind();
}
我正在尝试在网格上启用排序,但是当我单击列标题时此代码不起作用:
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
var sortExpression = e.SortExpression;
var sortDirection = e.SortDirection;
GridView1.DataBind();
GridView1.Sort(sortExpression, sortDirection);
}
这显然只是在 Sort & DataBind 语句之间循环,但令人惊讶的是,我似乎无法在 Google 机器上找到明确的指令。
【问题讨论】:
-
您能否将
AllowSorting="true"添加到 ASPX 而不是Page_Load事件?例如。<asp:GridView AllowSorting="true" -
可以,方法有区别吗?我问是因为我不知道。我正在学习asp。