I have a grid with three columns and I want user to enter their filter values and then click "Search Filter" button which is outside the grid.
Two columns have a textboxes for filter and the last column has a combobox with checkbox in it.
Everything works fine when the textbox columns are filtered. Problem occurs when the combobox with checkbox is selected. it returns no data found. You can see the image attached and also Client and Serverside codes.
Do let me know where am I going wrong...Any help will be appreciated.
Thanks
ASPX
Server Side Code
Two columns have a textboxes for filter and the last column has a combobox with checkbox in it.
Everything works fine when the textbox columns are filtered. Problem occurs when the combobox with checkbox is selected. it returns no data found. You can see the image attached and also Client and Serverside codes.
Do let me know where am I going wrong...Any help will be appreciated.
Thanks
ASPX
<telerik:RadGrid ID="rgPartnerPhone" runat="server" AllowFilteringByColumn="True" AllowPaging="True" AllowSorting="True" DataSourceID="dsPartnerPhone" GridLines="None"Skin="Outlook" Width="100%" ShowGroupPanel="True" AutoGenerateColumns="False" PageSize="50" Height="570px" OnItemCreated="rgPartnerPhone_ItemCreated" OnPreRender="rgPartnerPhone_PreRender" ShowFooter="true"> <MasterTableView DataSourceID="dsPartnerPhone" DataKeyNames="ProductID, ProductName" PageSize="50" Width="100%" GroupLoadMode="Client" EnableNoRecordsTemplate="true"ShowHeadersWhenNoRecords="true" AllowFilteringByColumn="true" AllowMultiColumnSorting="true"EnableHeaderContextMenu="true"> <NoRecordsTemplate> <div style="color: Red; font-weight: bold"> No data found.</div> </NoRecordsTemplate> <Columns> <telerik:GridNumericColumn DataField="ProductID" DataType="System.Int32" HeaderText="ProductID" SortExpression="ProductID" UniqueName="ProductID" ShowFilterIcon="false" AutoPostBackOnFilter="false"CurrentFilterFunction="EqualTo" NumericType="Number" MaxLength="10" FilterControlWidth="60px"HeaderStyle-Width="80px" ReadOnly="true" Groupable="false" AllowFiltering="true"> </telerik:GridNumericColumn> <telerik:GridTemplateColumn DataField="ProductName" HeaderText="ProductName" AutoPostBackOnFilter="false"FilterDelay="4000" ShowFilterIcon="false" SortExpression="ProductName" UniqueName="ProductName"CurrentFilterFunction="Contains" ItemStyle-Wrap="false" FilterControlWidth="260px"HeaderStyle-Width="280px" Groupable="false" AllowFiltering="true"> <ItemTemplate> <asp:HyperLink ID="hlPName" runat="server" NavigateUrl='<%# Eval("CatalogPageLink")%>' Target="_blank" Text='<%# Eval("ProductName")%>' ToolTip="Get Catalog Details"></asp:HyperLink> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="EquipmentType" HeaderText="EquipmentType" SortExpression="EquipmentType"UniqueName="EquipmentType" ShowFilterIcon="false" FilterControlWidth="140px"HeaderStyle-Width="160px" ItemStyle-Wrap="false" AllowFiltering="true"> <FilterTemplate> <telerik:RadComboBox ID="rcbEquip" runat="server" DataSourceID="dsGetEquipment"AllowCustomText="true" DataTextField="EquipmentType" DataValueField="EquipmentTypeID"Width="135px" AppendDataBoundItems="true" EmptyMessage="-- All Equipment --" HighlightTemplatedItems="true" AutoPostBack="true" TabIndex="1" Skin="Outlook"OnClientDropDownOpening="OnClientDropDownOpening" OnClientDropDownClosing="OnClientDropDownClosing"OnClientSelectedIndexChanging="OnClientSelectedIndexChanging" OnClientBlur="OnClientBlur"OnClientDropDownClosed="onDropDownClosing"> <ItemTemplate> <div onclick="stopPropagation(event);"> <asp:CheckBox runat="server" ID="cbEquipment" Text='<%# DataBinder.Eval(Container, "Text") %>' /> </div> </ItemTemplate> </telerik:RadComboBox> <asp:SqlDataSource ID="dsEquipment" runat="server" ConnectionString="<%$ ConnectionStrings:connGait %>" SelectCommand="dbo.CTsp_PPT_GetEquipmentType" SelectCommandType="StoredProcedure" /> </FilterTemplate> </telerik:GridBoundColumn> </Columns> </MasterTableView> <ClientSettings AllowColumnsReorder="True" AllowDragToGroup="True" ReorderColumnsOnClient="True"EnableRowHoverStyle="true" EnablePostBackOnRowClick="false" AllowKeyboardNavigation="true"ColumnsReorderMethod="Reorder"> <Resizing AllowColumnResize="True" EnableRealTimeResize="True" ResizeGridOnColumnResize="True" /> <Scrolling AllowScroll="True" UseStaticHeaders="True" SaveScrollPosition="true" FrozenColumnsCount="0"> </Scrolling> <ClientMessages /> </ClientSettings> <PagerStyle Mode="NextPrevNumericAndAdvanced" /> </telerik:RadGrid>Server Side Code
protected void btnFilters_Click(object sender, EventArgs e) { GridFilteringItem item = rgPartnerPhone.MasterTableView.GetItems(GridItemType.FilteringItem)[0] as GridFilteringItem; //for ComboBox string strEquip = string.Empty; RadComboBox comborcbEquip = (RadComboBox)item.FindControl("rcbEquip"); foreach (RadComboBoxItem ritem in comborcbEquip.Items) { CheckBox checkBox = (CheckBox)ritem.FindControl("cbEquipment"); if (checkBox.Checked) { strEquip += ritem.Text + ","; } } if (!string.IsNullOrEmpty(strEquip)) strEquip = strEquip.Remove(strEquip.Length - 1); string strProductID = (item["ProductID"].Controls[0] as RadNumericTextBox).Text; string strProductName = (item["ProductName"].Controls[0] as TextBox).Text; string strEquipType = strEquip; string expression = ""; if (strProductID != "") { if (expression != "") expression += " AND "; expression += "([ProductID] = \'" + strProductID + "\')"; } if (strProductName != "") { if (expression != "") expression += " AND "; expression += "([ProductName] LIKE \'%" + strProductName + "%\')"; } if (strEquipType != "") { string[] words = strEquipType.Split(','); foreach (string citem in words) { if (expression != "") expression += " AND "; expression += "([EquipmentType] LIKE \'%" + citem + "%\')"; } } rgPartnerPhone.MasterTableView.GetColumnSafe("ProductID").CurrentFilterValue = strProductID; rgPartnerPhone.MasterTableView.GetColumnSafe("ProductName").CurrentFilterValue = strProductName; rgPartnerPhone.MasterTableView.GetColumnSafe("EquipmentType").CurrentFilterValue = strEquipType; rgPartnerPhone.MasterTableView.FilterExpression = expression; rgPartnerPhone.MasterTableView.Rebind(); }