1

グリッドビューに 2 つのヘッダーがあります。RowCreated行の上に挿入されるイベントのコードビハインドに2番目のヘッダーを挿入してい<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(&#39;ctl00$Body$gvInitiavtives&#39;,&#39;Sort$BusinessUnit&#39;)"></a></th><th scope="col" style="white-space:nowrap;"><a href="javascript:__doPostBack(&#39;ctl00$Body$gvInitiavtives&#39;,&#39;Sort$IFunction&#39;)"></a></th><th scope="col" style="white-space:nowrap;"><a href="javascript:__doPostBack(&#39;ctl00$Body$gvInitiavtives&#39;,&#39;Sort$SubFunction&#39;)"></a></th><th scope="col">&nbsp;</th><th scope="col" style="white-space:nowrap;">&nbsp;</th><th scope="col" style="white-space:nowrap;">&nbsp;</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>

助けていただければ幸いです。

4

1 に答える 1