我的GridTemplateColumn
中有两个RadGrid
。默认过滤对我不起作用,我想更改它。
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>
如您所见,FileSize
TemplateColumn
已停用,而我正在使用FileSizeChange
。
FileSize字符串类似于(213435) - &gt;这个数字显示了我们的字节FileSizeChange类似于(231 MB)/
如何为Online
和FileSizeChange
GridTemplateColumn
编写过滤?
答案 0 :(得分:5)
要在模板列上使用过滤,您需要设置 DataField 并将数据字段添加到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
答案 1 :(得分:4)
如果您需要对项目模板列进行过滤,请确保在项目模板列上设置以下属性:
DataField="FileSize"
AllowFiltering="true"
AutoPostBackOnFilter="true"
DataType="System.String"
如果要隐藏过滤器功能图标,这两个是可选的:
ShowFilterIcon="false"
CurrentFilterFunction="Contains"
还要确保在radgrid上启用了过滤功能。
这是关于它的好文章: http://www.telerikschool.com/2011/11/textbox-in-gridtemplatecolumn.html
答案 2 :(得分:1)
因为这是您手动构建的ItemTemplate,所以您需要手动过滤。请参阅Telerik文档的此页面:http://www.telerik.com/help/aspnet-ajax/grid-operate-with-filter-expression-manually.html