2012-03-07 59 views
1

我有一個ASP.NET GridView。現在我將SortExpression屬性添加到<TemplateField>標記中,以使特定列可排序。ASP.NET中的SortExpression GridView不能與<HeaderTemplate配合使用>

現在,其中一列中有一些標記內容要添加到標題中。問題是,如果<TemplateField>中有一個標記,則SortExpression不起作用,您必須將其置於<TemplateField>HeaderText屬性中。 但是,如果我將其轉儲到HeaderText屬性中,則所有HTML內容都無法正常工作。

<asp:TemplateField SortExpression="FK_TesterID" ItemStyle-Width="300px" FooterStyle-Width="300px" ItemStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center"> 
     <HeaderTemplate> 
     <table width="100%"> 
     <tr> 
     <td align="center"> 
     Tester 
     </td> 
     </tr> 
     <tr> 
     <td> 
    <asp:DropDownList ID="cmbTestersHeader" ClientIDMode="Static" runat="server" Width="300px" DataSource='<%# PopulateTesterNames() %>' DataTextField="FullName" DataValueField = "PK_ID" Visible="false" AutoPostBack="true" OnSelectedIndexChanged="cmbTestersHeader_SelectedIndexChanged" ToolTip="Bulk Assign Testers !" ></asp:DropDownList> 
     </td> 
     </tr> 
     </table> 
     </HeaderTemplate> 

所以你可以看到,如果我把整個屬性headertext裏面,這是行不通的。

但我想要兩個功能。誰能幫忙?

+0

http://stackoverflow.com/questions/9603640/sortexpression-in-asp-net-gridview-not-working-with-headertemplate – 2013-11-28 15:55:14

回答

3

然後,您需要在HeaderTemplateCommandName="Sort"之間提供控件,例如LinkButton

<HeaderTemplate> 
     <table width="100%"> 
      <tr> 
       <td align="center"> 
        <asp:LinkButton ID="LbSort" runat="server" CommandName="Sort" Text="Sort" /> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:DropDownList ID="cmbTestersHeader" ClientIDMode="Static" runat="server" Width="300px" 
         DataSource='<%# PopulateTesterNames() %>' DataTextField="FullName" DataValueField="PK_ID" 
         Visible="false" AutoPostBack="true" OnSelectedIndexChanged="cmbTestersHeader_SelectedIndexChanged" 
         ToolTip="Bulk Assign Testers !"> 
        </asp:DropDownList> 
       </td> 
      </tr> 
     </table> 
    </HeaderTemplate> 
+0

謝謝!只是我需要的東西。 – 2012-03-08 05:47:41