Telerik Forums
UI for ASP.NET AJAX Forum
4 answers
1.8K+ views
Scenario: Users want to be able to specify a comma delimited-set of values to search for.

Solution: Convert "EqualsTo" query with a comma to a "IN { 'a','b','c' }" list style query. Bit hackish.

I'm using the sample in the Forum post as the base (it allows me to have a pre-specified/default filter and then add to it): http://www.telerik.com/forums/grid-filter-and-the-entitydatasource-control-whereparameters

Use a standard (or in my case Calculated) column, but with the field defined, with standard "EqualsTo" field defined:

<telerik:GridTemplateColumn DataField="CustomerTypeCode" UniqueName="CustomerType" HeaderText="Customer Type" SortExpression="CustomerTypeCode" CurrentFilterFunction="EqualTo" AutoPostBackOnFilter="true" ShowFilterIcon="false" FilterControlWidth="130px">
                    <HeaderStyle Width="150px" />
                    <ItemStyle Width="150px" />
                    <ItemTemplate>
                        <%# string.Format("{0} - {1}", Eval("CustomerTypeCode"), Eval("CustomerTypeDescription")) %>
                    </ItemTemplate>                   
                </telerik:GridTemplateColumn>

You "Selecting" event on the Entity Data Source is handled as per above sample:

protected void edsCustomers_Selecting(object sender, EntityDataSourceSelectingEventArgs e)
        {
            // Get the filtered data source (if applicable) and then append/pre-pend default filter
            EntityDataSource dataSource = e.DataSource;
            AddParameters(dataSource);
            BuildWhere(dataSource);
        }

Here's the crazy hack to rewrite the EqualsTo / Contains (LIKE) to a "IN" clause style query:

private void BuildWhere(IDynamicDataSource dataSource)
        {
            string filter = FilterDefault;
 
            // Parse filters with commas - convert LIKE and Equals (=) queries to IN query
            string gridFilters = dataSource.Where;
            if (!string.IsNullOrEmpty(gridFilters))
            {
                if (gridFilters.Contains(","))
                {
                    // Find filter fields (either Equals = or LIKE) with data inside quotes and rewrite to an "IN" query
                    // Looks for it.[Field] = "a,b" (or it.[Field] LIKE "%a,b%") etc                    
                    Regex regexCommaValues = new Regex("it\\.\\w*.....\\s([\"'])(?:(?=(\\\\?))\\2.)*?\\1");
                    var matches = regexCommaValues.Matches(gridFilters);
                    foreach (Match match in matches)
                    {
                        string value = match.Value;
                        value = value.Replace("LIKE \"", "IN {'");
                        value= value.Replace("%", "");
                        value = value.Replace("= \"", "IN {'");
                        value= value.Replace(",", "','");
                        value= value.Replace("\"", "'}");
 
                        // Replace original match with modified string
                        gridFilters = gridFilters.Replace(match.Value, value);
                    }
                }
 
                filter += " AND " + gridFilters;
            }
 
            // If custom filtering enabled, pre-pend with our default parameter
            dataSource.Where = filter;           
        }

Enjoy the hack. 

Please - if you can improve the solution or the regex, let me know!
Viktor Tachev
Telerik team
 answered on 28 Apr 2015
5 answers
305 views
Hello,

I created a web application, in which using control RadNumericTextBox. The code snippet is like below.
<telerik:RadNumericTextBox ID="MaxChildAge" runat="server" Type="Number" ShowSpinButtons="True"
            ButtonsPosition="Right" IncrementSettings-InterceptArrowKeys="True"
            IncrementSettings-Step="1" MaxValue="21" MinValue="0" MaxLength="2" NumberFormat-DecimalDigits="0">
            <EnabledStyle HorizontalAlign="Right" />
        </telerik:RadNumericTextBox>

However, when I browse this page thru IE/chrome, the spin buttons are not visible but it can work if I click mouse on the spin button area.

Thanks!
Maria Ilieva
Telerik team
 answered on 28 Apr 2015
5 answers
914 views
Hi,

When testing my code on my development box, I am attempting to find a radgrid in javascript (on the client) using the command:

$find("<%= RadGrid1.ClientID %>")


This returns an object and I have no problems.

When I deploy my code to our web server, this returns a null.  My question is whether the web server needs to have a Telerik license installed or can the binaries be deployed and the code should work.

The current deployed binaries are:
Telerik.Web.UI.XML
Telerik.Web.Device.Detection.xml
Telerik.Web.Design.dll
Telerik.Web.Device.Detection.dll
Telerik.Web.UI.dll
Telerik.Web.UI.Skins.dll

Thanks,
Viktor Tachev
Telerik team
 answered on 28 Apr 2015
1 answer
83 views

We have 3 tab RadTabStrip and each of the tab has radtabs. We have radchart inside these tabs. 

The chart gets loaded correctly onload. But it gets shrinked when i move from one tab to other.

 I have noticed that 'd' attribute in 'path' element inside the 'g' element('svg') of radchart gets changed on moving from tabs to tabs.

Danail Vasilev
Telerik team
 answered on 28 Apr 2015
10 answers
218 views

Hi all,

I have a number of grids in my project(s).  In many cases it is neccessary/helpful for users to 

  • print the grids' content
  • copy to clipbord (for further analysis in e.g. Excel)
  • export data to a Excel readable file or PDF

I have set my sights on creating a user control containing a Radgrid (of course) and a toolbar of some sort which buttons can be enabled/disabled as needed (see attached mock-up picture where the toolbar replaces a pager's fuctionality plus has some tools).  I have the feeling that this feature can be valuable to many users as it would provide a uniform approach to these common tasks.

I have be searching the forum for ideas and code snippets for my (dream) user control and I am stuck at the first stage.  The print instructions in http://www.telerik.com/community/code-library/aspnet-ajax/grid/print-radgrid-contents.aspx do not work right out of the box (with or without skins).

I suspect that I am not the first one to have abovementioned need.  Perhaps this functionality can already be found in some code library I have not stumbled on yet.  But anyway... please point out to me the resources (complete code, snippets, problems) and might help me realize my user control.

Thank you!   

Kostadin
Telerik team
 answered on 28 Apr 2015
2 answers
71 views

Hi All,

 I am facing a problem with tooltip, that the rollover keeps showing and does not be updated to the content. I can see the response contains the html code of the content ready for showing, but the rollover keeps showing and does not be changed to the html content.

 I am using the version 3.5.0.0. and here is the settings:

<telerik:RadToolTipManager runat="server" AnimationDuration="150" ShowDelay="200" OnClientResponseError="OnClientResponseError"<br>    HideDelay="10" HideEvent="LeaveToolTip" Position="TopCenter" RenderMode="Classic" ID="radTooltipMgr" Width="660px" Height="390px" RelativeTo="Element"<br>    Animation="Fade" OnAjaxUpdate="OnAjaxUpdate" EnableDataCaching="True" AutoCloseDelay="0" RenderInPageRoot="True" Skin="BlackMetroTouch"><br></telerik:RadToolTipManager>

Does someone have the same problem with me?

Thanks for any suggestion!

Marin Bratanov
Telerik team
 answered on 28 Apr 2015
8 answers
745 views
Hello All,

I have been through and through many examples and postings and, for the life of me, do not understand what I am doing wrong. 

I am trying to get the values out of the update template to use in an update statement in the code behind. When I set the var values, it is setting the original text box value and not the edited value. 

For example the original value is "Lake Erie Spring Bass Tournament". If I edit and change this value, my var t is set to the original value. 

Any info is greatly appreciated.

Thank you,
Mike

Here is my code:
<telerik:RadGrid ID="RadGrid1" runat="server" AllowSorting="True"  
    AutoGenerateColumns="False" GridLines="None" AutoGenerateEditColumn="True" > 
<HeaderContextMenu EnableAutoScroll="True"></HeaderContextMenu> 
 
<MasterTableView DataKeyNames="ID" > 
    <Columns> 
         <telerik:GridBoundColumn DataField="ID" HeaderText="ID"  
            UniqueName="column51" SortExpression="ID" Visible="false"  
             DataType="System.Int32" ReadOnly="True" > 
        </telerik:GridBoundColumn> 
        <telerik:GridBoundColumn DataField="Tournament" HeaderText="Tournament"  
            UniqueName="Tournament" SortExpression="Tournament"
        </telerik:GridBoundColumn> 
        <telerik:GridBoundColumn DataField="Date" HeaderText="Date"  
            UniqueName="Date" SortExpression="Date"
        </telerik:GridBoundColumn> 
        <telerik:GridBoundColumn DataField="Boats" HeaderText="Boats"  
            UniqueName="Boats" SortExpression="Boats"
        </telerik:GridBoundColumn> 
        <telerik:GridBoundColumn DataField="Finished" HeaderText="Finished"  
            UniqueName="Finished" SortExpression="Finished"
        </telerik:GridBoundColumn> 
        <telerik:GridBoundColumn DataField="Fee" HeaderText="Fee" UniqueName="Fee"  
            SortExpression="Fee"
        </telerik:GridBoundColumn> 
        <telerik:GridBoundColumn DataField="Winnings" HeaderText="Winnings"  
            UniqueName="Winnings" SortExpression="Winnings"
        </telerik:GridBoundColumn> 
    </Columns> 
 
</MasterTableView> 
</telerik:RadGrid> 



    Protected Sub RadGrid1_UpdateCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGrid1.UpdateCommand 
 
        Dim edititem As GridEditableItem = DirectCast(e.Item, GridEditableItem) 
        Dim id As String = edititem.GetDataKeyValue("ID").ToString() 
        Dim t As String = (TryCast(edititem("Tournament").Controls(0), TextBox)).Text 
 
 
        ' dbinteractions.UpdateTournTrackerRecordByID(id, t) 
 
    End Sub

Maria Ilieva
Telerik team
 answered on 28 Apr 2015
1 answer
92 views

hi all,

i m new to telerik controls.. please help me.. i want to know whether we can display the table  value from database side by side like i shown below.. if it is possible how can we do that using telerik. 

   Name:abx              Place  :xxx                  
no         list                no         list
1           aa                 2           cc
3           ss                 4           dd

 

Thanks in Advance,

Anju

Eyup
Telerik team
 answered on 28 Apr 2015
6 answers
399 views
Hey Y'all,

I have a RadTabStrip on a site page I've built for SharePoint. The formatting worked perfectly on SharePoint 2007, but now that I've upgraded to 2010 I have a formatting issue. The tabs are displaying below the level of the quick launch (See Figure1.png). I've used the web dev tool in IE8 and tracked it to the clear:both coming from the .RadTabStrip .rtsLevel style  (See Figure2.png, notice that forcing the style in the browser causes the tabs to display properly). The style is coming from your WebResource.axd and I can't seem to make my style take priority over the one you have coming in. Is there a way in the page or in my code to manually change that one style setting?

Thanks.
Hristo Valyavicharski
Telerik team
 answered on 28 Apr 2015
9 answers
126 views
I'm trying to use the RadProgressArea to show the progress of inserting records into a database but am getting a javascript error which is causing the RadProgressArea fields on subsequent requests to not be updated.  

I am using a Master page and have the buttons inside a RadPanel bar and am using AJAX thru the RadAjaxManager.  I am using the current version of the RadControls (v.2013.1.403.40).

Steps to reproduce the error.
1. Click on Step 1
2. RadProgressArea fields update successfully
3. Wait for progress to finish - JS Error appears after process Completes
4. Click on Step 1 again (RadProgressArea still shows 100% complete)

Function RadUploadSafariPoller
}else{try{document.execCommand("Stop");
}catch(a){window.location.href=window.location.href;
}}return;
}}}}var d=typeof(rawProgressData)!="undefined"&&rawProgressData.OperationComplete&&rawProgressData.OperationComplete.toLowerCase()=="true";
var b=(typeof(rawProgressData)!="undefined")?rawProgressData.InProgress:true;
if(d){this._stopAsyncPolling();
Uncaught TypeError: Object #<Object> has no method '_stopAsyncPolling' Default.aspx:38
RadUploadSafariPoller._handleCallback Default.aspx:38
(anonymous function) Default.aspx:8
RadUploadSafariPoller._sendXmlHttpRequest Default.aspx:16
RadUploadSafariPoller._makeCallback
return;
}if(!b){if(this._failureCounter){this._failureCounter++;
}if(this._failureCounter>10){this._stopAsyncPolling();
this._failureCounter=1;
return;
}}if(this._disposed||d){return;
}if(!this._isInAsyncUpload&&d){return;

Master Page - Nothing in .cs
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<head runat="server">
    <title></title>
    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        </telerik:RadAjaxManager>
        <telerik:RadSkinManager ID="RadSkinManager1" Runat="server" >
        </telerik:RadSkinManager>
        <telerik:RadScriptManager ID="RadScriptManager1" runat="server" AsyncPostBackTimeOut="600">
        </telerik:RadScriptManager>
 
        <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
         
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>

Default.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
 
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
 
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="RadPanelBar1" >
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadPanelBar1" LoadingPanelID="RadAjaxLoadingPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="RadProgressArea1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server">
    </telerik:RadAjaxLoadingPanel>
 
     <telerik:RadPanelBar ID="RadPanelBar1" runat="server" Width="100%" ExpandMode="SingleExpandedItem">
            <Items>
                <telerik:RadPanelItem Text="1: Do Something 100 times" Expanded="true" >
                    <Items>
                        <telerik:RadPanelItem>
                            <ItemTemplate>
                                <asp:Button ID="btnStep1" runat="server" Text="Step 1" onclick="btnStep1_Click" />
                            </ItemTemplate>
                        </telerik:RadPanelItem>
                    </Items>
                </telerik:RadPanelItem>
                <telerik:RadPanelItem Text="2: Do Something 300 times" Expanded="true" >
                    <Items>
                        <telerik:RadPanelItem>
                            <ItemTemplate>
                                <asp:Button ID="btnStep2" runat="server" Text="Step 2" onclick="btnStep2_Click"/>
                            </ItemTemplate>
                        </telerik:RadPanelItem>
                    </Items>
                </telerik:RadPanelItem>
            </Items>
        </telerik:RadPanelBar>
 
        <telerik:radprogressmanager id="RadProgressManager1" runat="server" />
        <telerik:radprogressarea id="RadProgressArea1" runat="server" displaycancelbutton="False" CssClass="center">
            <ProgressTemplate>
                <div class="rpaInner">
                        <div class="rpaHeader">
                            <strong>Total Progress</strong>
                        </div>
                        <div class="rpaBody">
                            <dl>
                                <dt class="rpaStatFirst">Total Progress Percent</dt>
                                <dd class="rpaStatFirst"><span runat="server" id="PrimaryPercent"></span>%</dd>
                                <dt>Total Progress:</dt>
                                <dd><span runat="server" id="PrimaryValue"></span></dd>
                                <dt>Insert Count:</dt>
                                <dd><span runat="server" id="PrimaryTotal"></span></dd>
                                <dt>Time Elapsed:</dt>
                                <dd><span runat="server" id="TimeElapsed"></span></dd>
                            </dl>
                        </div>
                    </div>           
            </ProgressTemplate>
        </telerik:radprogressarea>
</asp:Content>

Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
 
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
    private void DoSomething(int LoopNum)
    {
        RadProgressContext context = RadProgressContext.Current;
        context.PrimaryValue = 0;
        context.PrimaryPercent = 0;
        context.OperationComplete = false;
 
        context.PrimaryTotal = LoopNum;
        for (int i = 1; i <= LoopNum; i++)
        {
            context.PrimaryValue = i.ToString();
            context.PrimaryPercent = Math.Round((decimal)i / LoopNum * 100, 1).ToString();
            if (!Response.IsClientConnected)
            {
                //Cancel button was clicked or the browser was closed, so stop processing
                break;
            }
 
            System.Threading.Thread.Sleep(100);
        }
        context.PrimaryValue = LoopNum;
        context.PrimaryPercent = 100;
        context.CurrentOperationText = "Complete";
        context.OperationComplete = true;
    }
 
    protected void btnStep1_Click(object sender, EventArgs e)
    {
        DoSomething(100);
    }
    protected void btnStep2_Click(object sender, EventArgs e)
    {
        DoSomething(300);
    }
}


Thanks,
Greg
Hristo Valyavicharski
Telerik team
 answered on 27 Apr 2015
Narrow your results
Selected tags
Tags
+? more
Top users last month
Rob
Top achievements
Rank 3
Bronze
Iron
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Bronze
Iron
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?