【发布时间】:2018-06-17 14:45:43
【问题描述】:
我有一个包含已排序列值的数据表,当我将它们绑定到 gridview 时,我无法在 gridview 中看到与数据表中相同的顺序。
gridview 中也禁用了排序事件。
谁能给点建议。
HTML:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" ShowHeaderWhenEmpty="true" EmptyDataText="No Records Found" OnRowDataBound="GridView1_RowDataBound" AllowSorting="true" OnSorting="GridView1_Sorting"
OnPageIndexChanging="GridView1_PageIndexChanging" AllowPaging="true" CellPadding="1" PageSize="200" AutoPostBack="true" AllowCustomPaging="true" ShowHeader="true"
CellSpacing="1" BackColor="#e7e7e8" BorderColor="#e7e7e8" GridLines="Both" CssClass="GridViewStyleB" Font-Names="Calibri" Font-Size="10pt">
<PagerSettings Mode="NumericFirstLast" PageButtonCount="4" FirstPageText="First" LastPageText="Last" Position="Top" Visible="true" />
<PagerStyle BackColor="#e7e7e8" ForeColor="Black" HorizontalAlign="left" />
<HeaderStyle CssClass="RowStyle" ForeColor="Black" BackColor="#a9a9a9" Font-Underline="false" HorizontalAlign="Left" />
<RowStyle CssClass="RowStyle" HorizontalAlign="Left" BorderColor="#E7E7E8" ForeColor="Black" />
<AlternatingRowStyle CssClass="AlternatingRowStyle" BorderColor="#E7E7E8" ForeColor="Black" BackColor="#e7e7e8" />
<EmptyDataRowStyle HorizontalAlign="Center" />
</asp:GridView>
代码:
DataTable dtColumns = FromDataTable();
GridView1.DataSource = dtColumns;
GridView1.DataBind();
dtColumns datatable 已经对数据进行了排序,当我将它们绑定到 gridview 时,顺序会发生变化。
【问题讨论】:
-
您能展示一下您是如何对数据表进行排序的吗?因为如果您不使用
dtColumns.DefaultView.ToTable();,则不会提交排序。 -
@VDWWD - 我没有对来自 SQL 的数据进行排序,我需要按顺序显示值,就像我在数据表中的获取方式一样。仅供参考,如果我做错了什么,我没有使用任何排序来对数据表进行排序并纠正我。
-
那么问题不在于GridView或DataTable。不排序 GridView 将显示与 DataTable 相同的顺序。也许 SQL 没有像您怀疑的那样排序,或者您也在使用 jQuery 库进行客户端排序?
-
@VDWWD - 数据表具有正确的排序行,我只需要在 gridview 中显示相同的行。数据表已排序数据。