2011-11-07 39 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