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();
}