我使用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>
在数据绑定的后端,我将此列的文本设置为Customer的名称,我通过linq查询获得单独的表。
当我尝试过滤表期望id而不是名称时,问题在于过滤。有没有人知道如何过滤列中的文本而不是值?
答案 0 :(得分: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。< / p>