GridView AutoGenerateColumns和排序

时间:2009-08-31 16:05:12

标签: asp.net vb.net gridview sorting

关于VB.NET中GridView排序的问题:

我有一个带AutoGenerateColumns = True

的GridView
<asp:GridView ID="GridView1" FooterStyle-BackColor="Aquamarine"
  AutoGenerateColumns="true" AllowSorting="true" OnSorting="Gridview1_Sorting"
  AllowPaging="True" PageSize="12" OnRowCreated="GridView1_RowCreated"
  RowStyle-Wrap="true" runat="server" Width="100%" >
    <HeaderStyle BackColor="#E0E0E0" ForeColor="#000000"/>
    <FooterStyle BackColor="Aquamarine" />
        <emptydatarowstyle backcolor="#CBE0FD" forecolor="#0000FF"/>
</asp:GridView>

我已经声明了排序事件处理程序(OnSorting="Gridview1_Sorting"),它工作正常。

但是,然后我更改了列标题(标题,因为它们在我从数据库中获取的DataSet中)

GridView1.HeaderRow.Cells(0).Text = "Document" ' "PROC_UID"
GridView1.HeaderRow.Cells(1).Text = "Process Step" ' "PROC_DOC_UID"

当我设置HeaderRow文本时,我无法再单击要排序的标题(它也不再加下划线)。 我该如何纠正?

2 个答案:

答案 0 :(得分:4)

请参阅http://forums.asp.net/p/996470/1691883.aspx#1691883

您需要在控件集中找到链接按钮,然后更新链接文本。

答案 1 :(得分:2)

您可以通过在网格使用的SQL查询中对列进行别名来更改列标题:

Select ColumnA as [Whatever], ColumnB as [Name It This] From Table ....