SortExpression 在 ASP.NET 中不起作用 如果 Header 文本通过 VB 代码动态传递
SortExpression not working in ASP.NET If Header Text is passed dynamically through VB code
我在第 6 列使用以下 aspx 代码(此列号在 .vb 代码中有参考,代码在下面 aspx 代码中提到):
<asp:BoundField ControlStyle-CssClass="dbody" DataField="order_date" HeaderText="Order Date" SortExpression="order_date">
<HeaderStyle HorizontalAlign="Left" ForeColor="White" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
在 aspx.vb 页面上,我使用以下代码动态传递 Header 文本:
If iOrderType = 4 Then
gvOrders.HeaderRow.Cells(6).Text = "DVN date"
ElseIf iOrderType = 11 Then
gvOrders.HeaderRow.Cells(6).Text = "Lab Order Date"
Else
gvOrders.HeaderRow.Cells(6).Text = "Order Date"
End If
现在 运行 应用程序后,我的第六列无法用作排序表达式 link。同样在 asp 网格视图中,标签 AllowSorting 为“true”,gvOrder 为网格 ID。
对于启用排序的 header 单元格,DataControlField
将向 TableCell
添加一个 LinkButton
,并相应地设置其属性。
当您设置 TableCell
的 Text
属性 时,它会删除所有由 DataControlField
创建的控件。这包括用于对单元格进行排序的 LinkButton
。
您需要改为更改 LinkButton
的文本。
Dim text As String
If iOrderType = 4 Then
text = "DVN date"
ElseIf iOrderType = 11 Then
text = "Lab Order Date"
Else
text = "Order Date"
End If
Dim cell As TableCell = gvOrders.HeaderRow.Cells(6)
Dim button As IButtonControl = If(cell.HasControls(), TryCast(cell.Controls(0), IButtonControl), Nothing)
If button Is Nothing Then
cell.Text = text
Else
button.Text = text
End If
我在第 6 列使用以下 aspx 代码(此列号在 .vb 代码中有参考,代码在下面 aspx 代码中提到):
<asp:BoundField ControlStyle-CssClass="dbody" DataField="order_date" HeaderText="Order Date" SortExpression="order_date">
<HeaderStyle HorizontalAlign="Left" ForeColor="White" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
在 aspx.vb 页面上,我使用以下代码动态传递 Header 文本:
If iOrderType = 4 Then
gvOrders.HeaderRow.Cells(6).Text = "DVN date"
ElseIf iOrderType = 11 Then
gvOrders.HeaderRow.Cells(6).Text = "Lab Order Date"
Else
gvOrders.HeaderRow.Cells(6).Text = "Order Date"
End If
现在 运行 应用程序后,我的第六列无法用作排序表达式 link。同样在 asp 网格视图中,标签 AllowSorting 为“true”,gvOrder 为网格 ID。
对于启用排序的 header 单元格,DataControlField
将向 TableCell
添加一个 LinkButton
,并相应地设置其属性。
当您设置 TableCell
的 Text
属性 时,它会删除所有由 DataControlField
创建的控件。这包括用于对单元格进行排序的 LinkButton
。
您需要改为更改 LinkButton
的文本。
Dim text As String
If iOrderType = 4 Then
text = "DVN date"
ElseIf iOrderType = 11 Then
text = "Lab Order Date"
Else
text = "Order Date"
End If
Dim cell As TableCell = gvOrders.HeaderRow.Cells(6)
Dim button As IButtonControl = If(cell.HasControls(), TryCast(cell.Controls(0), IButtonControl), Nothing)
If button Is Nothing Then
cell.Text = text
Else
button.Text = text
End If