2009-08-31 46 views
4

关于产品的GridView在VB.NET排序:的GridView的AutoGenerateColumns和排序

我有AutoGenerateColumns = True

<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")一个GridView,并能正常工作。

不过,后来我更改列标题(标题,因为他们是在我从数据库中获取的数据集)

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

当我设置HeaderRow文本,我不能再点击标题排序(它也不再下划线)。 我该如何纠正?

回答

4

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

你需要找到控件集内的链接按钮,然后更新链接文本。

+0

最优秀的。需要更换 “” 与 等的HTMLEncode链接按钮文本 昏暗tblThisCell作为TableCell的 对于每个tblThisCell在e.Row.Cells 尝试 昏暗lnkBut​​ton作为的LinkBut​​ton = tblThisCell.Controls(0) 选择案例lnkBut​​ton.Text 案 “DOC_Bezeichnung” lnkBut​​ton.Text = “库门” 最终选择 抓住EX作为例外 MyDebug.MsgBox(ex.Message) 结束Try 接下来 结束如果 –

2

您可以通过在由网格使用的SQL查询您的别名列更改列标题:

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

最好的方式做到这一点! – TheVillageIdiot

+0

也不错,但给我的问题,因为用这种方法,我不得不改变我的查询。 –