【问题标题】:GridView AutoGenerateColumns and sortingGridView AutoGenerateColumns 和排序
【发布时间】:2010-11-24 09:29:38
【问题描述】:

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 文本时,我不能再单击标题进行排序(它也不再带下划线)。 我该如何纠正?

【问题讨论】:

    标签: asp.net vb.net gridview sorting


    【解决方案1】:

    您可以通过在网格使用的 sql 查询中为列设置别名来更改列标题:

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

    【讨论】:

    • 也不错,但给我带来了问题,因为使用这种方法我必须更改我的查询。
    【解决方案2】:

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

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

    【讨论】:

    • 最优秀。需要将“”替换为 等 HTMLencode 链接按钮文本 Dim tblThisCell As TableCell For Each tblThisCell In e.Row.Cells Try Dim lnkBut​​ton As LinkBut​​ton = tblThisCell.Controls(0) Select Case lnkBut​​ton.Text Case "DOC_Bezeichnung" lnkBut​​ton.Text = "Dokument" End Select Catch ex As Exception MyDebug.MsgBox(ex.Message) End Try Next End If
    猜你喜欢
    • 2018-02-05
    • 2011-10-08
    • 2011-11-25
    • 2012-08-23
    • 2012-03-14
    • 2018-04-18
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多