当我使用GridView显示来自DB的行时,列显示没有顺序。像:
课程名称ID
我想按顺序显示它们:
ID名称课程
我该怎么做?
这是第一个piont。
第二点是我如何重新列出一列?
感谢。
答案 0 :(得分:3)
最简单的解决方案是不使用
SELECT *
而是按照您想要的顺序指定列。
SELECT ID, Name, Class, Course FROM....
就重命名列而言,也可以在SQL中完成。
SELECT ID as A, Name as B, Class as C, Course as D FROM....
答案 1 :(得分:2)
您需要自己显式创建列,而不是让GridView为您生成它们。如果您这样做,您可以根据自己的喜好订购它们并重命名。
以下是一个示例(headertext
属性允许您重命名列):
<asp:gridview id="foo" runat="server" autogeneratecolumns="false">
<columns>
<asp:boundfield datafield="ID" headertext="Identifier" />
<asp:boundfield datafield="Name" />
<asp:boundfield datafield="Class" />
<asp:boundfield datafield="Course" />
</columns>
</asp:gridview>
答案 2 :(得分:1)
关闭“自动生成列”,并以您想要的任何顺序/格式指定列。
答案 3 :(得分:1)
首先在标记中将AutoGenerateColumns设置为FALSE。然后,您可以添加列并明确排序。
例如:
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn DataField="ID" HeaderText="ID" />
.
.
.
答案 4 :(得分:0)
如果要连接数据源,只需单击表单上的gridview箭头,然后单击 编辑列 ,然后单击进行排序向上或向下 箭头,在这些选项的右侧,您将看到boundfield属性。您可以将 HeaderText 更改为您想要的任何内容。
答案 5 :(得分:0)
在少数情况下,您无法将AutoGenerateColumns设置为false。
我有一个应用程序(ReleaseManager),我不提前知道SQL。因此,在站点设置期间,他们输入一个连接字符串和SQL,以从他们的错误跟踪数据库中列出他们的错误。我使用它来在运行时使用bug跟踪器中的行获取表。从那里我添加了一列复选框,以便他们可以选择错误跟踪项目以满足发布请求。
dtIssues.Columns.Add(new DataColumn("Include", typeof(Boolean)));
dtIssues.Columns["Include"].SetOrdinal(0);
所以我添加了一个布尔列,它作为一个复选框绑定,然后我将它设置为第一列。我的GridView将AutoGenerateColumns设置为“True”。
他们输入的SQL的要求是第一列必须是他们的bug跟踪表上的Id列(其余我不关心),我可以重命名他们给我的内容:
dtIssues.Columns[1].ColumnName = "ID";
所以这就是它的样子:
(来源:digitaltools.com)