2011-11-07 37 views
2

我在我的RadGrid中有兩個GridTemplateColumn s。默認篩選不適用於我,我想更改它。如何篩選Telerik RadGrid的GridTemplateColumns

的GridTemplateColumns是象下面這樣:

<telerik:GridTemplateColumn FilterControlAltText="Filter Online column" HeaderText="Online" 
    UniqueName="Online"> 
    <ItemTemplate> 
     <asp:CheckBox ID="chkOnline" runat="server" Checked='<%# CheckForOnline(Eval("ID")) %>' 
      Enabled="False" /> 
    </ItemTemplate> 
    <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" /> 
    <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="100px" /> 
</telerik:GridTemplateColumn> 

,另一種:

<telerik:GridTemplateColumn FilterControlAltText="Filter FileSize column" HeaderText="FileSize" 
    UniqueName="FileSize" Visible="False"> 
    <ItemTemplate> 
     <asp:Label ID="lblFileSize" runat="server" Text='<%# Eval("FileSize") %>'></asp:Label> 
    </ItemTemplate> 
    <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" /> 
    <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" /> 
</telerik:GridTemplateColumn> 
<telerik:GridTemplateColumn FilterControlAltText="Filter FileSizeChange column" HeaderText="FileSize" 
    UniqueName="FileSizeChange"> 
    <ItemTemplate> 
     <asp:Label ID="lblFileSizeChange" runat="server" Text='<%# ChangeFileSize(Eval("FileSize")) %>'></asp:Label> 
    </ItemTemplate> 
    <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" /> 
    <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" /> 
</telerik:GridTemplateColumn> 

正如你所看到的,FileSizeTemplateColumn被禁用,我使用FileSizeChange代替。

FileSize字符串就像(213435) - >這個數字顯示了我們的字節數。 FileSizeChange是(231 MB)/

如何爲OnlineFileSizeChangeGridTemplateColumn s寫入過濾?

回答

5

爲了使用過濾功能模板列,您需要設置數據字段和數據字段添加到的DataKeyNames

如:

<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" AllowFilteringByColumn="True"> 
    <MasterTableView DataKeyNames="ID"> 
     <Columns> 
      <telerik:GridTemplateColumn DataField="ID" FilterControlAltText="Filter Online column" HeaderText="Online" UniqueName="Online"> 
       <ItemTemplate> 
        <asp:CheckBox ID="chkOnline" runat="server" Checked='<%# CheckForOnline(Eval("ID")) %>' Enabled="False" /> 
       </ItemTemplate> 
       <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" /> 
       <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="100px" /> 
      </telerik:GridTemplateColumn> 
... 
etc, etc 
3

如果需要過濾項目模板列,請確保在項目模板列上設置以下屬性:

DataField="FileSize" AllowFiltering="true" AutoPostBackOnFilter="true" DataType="System.String"

ShowFilterIcon="false" CurrentFilterFunction="Contains"

另外,還要確保你有過濾功能的radgrid控件啓用:如果你要隱藏的過濾器功能圖標

這兩個是可選的。

這裏有一個關於它的好帖子: http://www.telerikschool.com/2011/11/textbox-in-gridtemplatecolumn.html

+0

沒有AutoPostBackOnFilter,工作正常。 – Jude