2014-10-08 189 views
0

我正在使用telerik radgrid制作应用程序。其中一列设置为模板列:Telerik RadGrid过滤器

<telerik:GridTemplateColumn DataField="CustomerID" DataType="System.Int32" FilterControlAltText="Filter CustomerID column" HeaderText="Customer" SortExpression="CustomerID" UniqueName="CustomerID"> 
           <InsertItemTemplate> 
            <asp:DropDownList ID="ddlInsertCustomer" runat="server" DataSourceID="SqlDataCustomers" DataTextField="customerName" DataValueField="id" SelectedValue='<%# Bind("CustomerID") %>'> 
            </asp:DropDownList> 
           </InsertItemTemplate> 
           <EditItemTemplate> 
            <asp:DropDownList ID="ddlCustomer" runat="server" DataSourceID="SqlDataCustomers" DataTextField="customerName" DataValueField="id" SelectedValue='<%# Bind("CustomerID") %>'> 
            </asp:DropDownList> 
           </EditItemTemplate> 
           <ItemTemplate> 
            <asp:Label ID="CustomerIDLabel" runat="server" Text='<%# Eval("CustomerID") %>'></asp:Label> 
           </ItemTemplate> 
          </telerik:GridTemplateColumn> 

在上我这个专栏的文字设置为我通过LINQ查询到一个单独的表中获取客户的名称数据绑定的后端。

问题是在我试图过滤表的过滤器期望的id而不是名称。有谁知道如何过滤列中的文本而不是值?

回答

0

也许你最简单的选择是在网格的数据源中包含所需的字段,以便它可以自动进行过滤:http://www.telerik.com/help/aspnet-ajax/grid-implementing-filtering-for-gridtemplatecolumns.html。本文还提供了一个可以查看的定制方法。

如果您在下拉列表中具有所需的数据(例如,作为其值字段),您也可以尝试在客户端上添加过滤器表达式,但我不确定这适用于模板列:http://www.telerik.com/help/aspnet-ajax/grid-client-side-binding-adding-sort-filter-expressions.html