我的网格视图中有 2 个标题。我在事件后面的代码中插入第二个标题,RowCreated
该事件将插入到<asp:BoundField>
行上方。我已经SortExpression
为每个BoundField
. 当我运行应用程序时,SorExpression
将在每个BoundField
未插入的标头上创建超链接(这在逻辑上是正确的)。但我想对插入的标题行进行排序表达式。我怎样才能做到这一点?
下面我正在解释我所做的步骤
ASPX
<asp:GridView ID="gvInitiavtives" runat="server" Width="100%" CssClass="Grid"
RowStyle-Width="30px" AutoGenerateColumns="false" HeaderStyle-CssClass="GridHeader" RowStyle-CssClass="GridItem" AlternatingRowStyle-CssClass="GridAltItem" DataKeyNames="InitiativeIdx" >
<Columns>
<asp:BoundField DataField="BusinessUnit" HeaderText="" HeaderStyle-Wrap="false" HeaderStyle-HorizontalAlign="NotSet" SortExpression='BusinessUnit' />
<asp:BoundField DataField="IFunction" HeaderText="" HeaderStyle-Wrap="false" HeaderStyle-HorizontalAlign="NotSet" SortExpression='IFunction'/>
<asp:BoundField DataField="SubFunction" HeaderText="" HeaderStyle-Wrap="false" HeaderStyle-HorizontalAlign="NotSet" SortExpression='SubFunction' />
.....
代码背后
Private Sub gvInitiavtives_RowCreated(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvInitiavtives.RowCreated
If e.Row.RowType = DataControlRowType.Header Then
Dim HeaderGrid As GridView = DirectCast(sender, GridView)
Dim HeaderGridRow As New GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Insert)
Dim HeaderCell As New TableHeaderCell()
HeaderCell.Text = "BU"
HeaderGridRow.Cells.Add(HeaderCell)
HeaderCell = New TableHeaderCell()
HeaderCell.Text = "Function"
HeaderGridRow.Cells.Add(HeaderCell)
HeaderCell = New TableHeaderCell()
HeaderCell.Text = "Sub - Function"
HeaderGridRow.Cells.Add(HeaderCell)
....
....
gvInitiavtives.Controls(0).Controls.AddAt(0, HeaderGridRow)
End If
End Sub
浏览器
HTML
<table class="Grid" cellspacing="0" rules="all" border="1" id="Body_gvInitiavtives" style="width:100%;border-collapse:collapse;">
<tr class="GridHeader">
<th>BU</th><th>Function</th><th>Sub - Function</th><th>Initiative Name</th><th>Location</th><th>Cost Center</th><th colspan="2">Estimated Cost Savings</th><th colspan="2">Estimated Personnel Savings</th>
</tr>
<tr class="GridHeader">
<th scope="col" style="white-space:nowrap;"><a href="javascript:__doPostBack('ctl00$Body$gvInitiavtives','Sort$BusinessUnit')"></a></th><th scope="col" style="white-space:nowrap;"><a href="javascript:__doPostBack('ctl00$Body$gvInitiavtives','Sort$IFunction')"></a></th><th scope="col" style="white-space:nowrap;"><a href="javascript:__doPostBack('ctl00$Body$gvInitiavtives','Sort$SubFunction')"></a></th><th scope="col"> </th><th scope="col" style="white-space:nowrap;"> </th><th scope="col" style="white-space:nowrap;"> </th><th scope="col" style="white-space:nowrap;">Low</th><th scope="col" style="white-space:nowrap;">High</th><th scope="col" style="white-space:nowrap;">Low</th><th scope="col" style="white-space:nowrap;">High</th>
</tr>
<tr class="GridItem" style="width:30px;">
<td>UNKNOWN</td><td>UNKNOWN</td><td>UNKNOWN</td><td>
帮助将不胜感激。