Showing posts with label Telerik. Show all posts
Showing posts with label Telerik. Show all posts

Thursday, 31 January 2013

Download Files From Grid in Kendo UI

View
@(Html.Kendo().Grid<MvcApplication1.Models.TestModels>()
    .Name("Grid")
    .Columns(columns =>
    {
        columns.Bound(p => p.ID).Groupable(false);
        columns.Bound(p => p.Name);
        columns.Template(@).ClientTemplate("Download file").Title("Download1");
        columns.Template(@).ClientTemplate("" + Html.ActionLink("Download me", "DocumentDownload2", "Home", new { id = "#=ID#" }, null) + "").Title("Download2");

    })

     .DataSource(dataSource => dataSource
          .Ajax()
          .Read(read => read.Action("Grid_Read", "Home"))
     )
)
Controller
public ActionResult Grid_Read([DataSourceRequest] DataSourceRequest request)
{
    List<TestModels> models = new List<TestModels>();

    for (int i = 1; i < 6; i++)
    {
        TestModels model = new TestModels();
        model.ID = i;
        model.Name = "Name" + i;
        models.Add(model);
    }

    return Json(models.ToDataSourceResult(request));
}


public ActionResult DocumentDownload1()
{
    string contentType = "application/xlsx";
    string filePath = Server.MapPath("~/Files/YourFileName.xlsx");
    return File(filePath, contentType, "YourFileName.xlsx");
}

public ActionResult DocumentDownload2(int id)
{
    string contentType = "application/xlsx";
    string filePath = Server.MapPath("~/Files/YourFileName.xlsx");
    return File(filePath, contentType, "YourFileName_" + id.ToString() + ".xlsx");
}

Monday, 24 December 2012

highlight the searched text in RadListBox and move checked items in to top of the list

JS
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
    <script type="text/javascript" language="javascript">
        function onChangeFilterByName(g, text) {
            var f = $find("<%= RadListBox1.ClientID %>");
            if (f._enableMarkMatches && ($telerik.isIE || $telerik.isChrome)) {
                var h = g.keyCode == Sys.UI.Key.backspace || g.keyCode == Sys.UI.Key.esc || g.keyCode == Sys.UI.Key.space || g.keyCode == Sys.UI.Key.down || g.keyCode == Sys.UI.Key.up;
                if (h) {
                    var j = f._onKeyPress(g);
                    g.preventDefault();
                    if (j) { return; }
                }
            }
            f._onKeyDown(g);
            f._onKeyPress(g);
        }
        function onChangeFilterByName1(txtFilterByName) {
            var check = 0;
            var listbox = $find("<%= RadListBox1.ClientID %>");
            var items = listbox.get_items();
            var itemContainsSearchText = new Array();
            var index = 0;
            {
                for (var i = 0; i <= items.get_count() - 1; i++) {
                    var item = items.getItem(i);
                    if (!item.get_checked() && item.get_text().toLowerCase().startsWith(txtFilterByName.value.toLowerCase())) {
                        item.scrollIntoView();
                        item.ensureVisible();
                        var text = item.get_text();
                        var replace = String.format("<span class=\"rlbHighlight\">{0}</span>", text);
                        item.set_text(replace);
                        //break;
                    }
                }
            }
        }

        function OnClientItemCheckedHandler(sender, eventArgs) {
            var item = eventArgs.get_item();
            var checkedItem = sender.get_checkedItems();
            checkedItem.sort(sortAscByText);
            var allItems = sender.get_items().toArray();
            for (var i = 0; i < checkedItem.length; i++) {
                sender.reorderItem(checkedItem[i], i);
            }

            if (!item.get_checked()) {
                //removed checked items
                for (var i = 0; i < checkedItem.length; i++) {
                    var index = allItems.indexOf(checkedItem[i]);
                    allItems.splice(index, 1);
                }
                //reorder uncheck items.
                allItems.sort(sortAscByText);
                var index = checkedItem.length;
                for (var i = 0; i < allItems.length; i++) {
                    sender.reorderItem(allItems[i], index);
                    index = index + 1;
                }
            }
        }

        function sortAscByText(a, b) {
            return a.get_text() == b.get_text() ? 0 : a.get_text() < b.get_text() ? -1 : 1
        }
    </script>
</telerik:RadCodeBlock>
ASPX
<div>
        <asp:TextBox ID="txtSort" runat="server" Width="195px" OnKeyUp="onChangeFilterByName(event,this)"></asp:TextBox><br />
        <br />
        <telerik:RadListBox ID="RadListBox1" runat="server" CheckBoxes="true" Width="200px"
            Height="200px" SelectionMode="Multiple" TabIndex="1" EnableMarkMatches="true"
            OnClientItemChecked="OnClientItemCheckedHandler">
            <Items>
                <telerik:RadListBoxItem Text="Argentina" Value="1"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="Australia" Value="2"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="Brazil" Value="3"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="Canada" Value="4"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="Chile" Value="5"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="China" Value="6"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="Egypt" Value="7"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="England" Value="8"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="France" Value="9"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="Germany" Value="10"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="India" Value="11"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="Indonesia" Value="12"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="Kenya" Value="13"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="Mexico" Value="14"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="New Zealand" Value="15"></telerik:RadListBoxItem>
                <telerik:RadListBoxItem Text="South Africa" Value="16"></telerik:RadListBoxItem>
            </Items>
        </telerik:RadListBox>
    </div>
Output of this code:


This code is contributed form Abidali Suthar [one of the developer in my team].

Friday, 31 August 2012

RadGrid with WCF Rest Service

Create WCF service.



IService1.cs
namespace WcfService1
{   
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json)]
        ResultData GetData(int startRowIndex, int maximumRows, string sortExpression, string filterExpression);

        [OperationContract]
        [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]
        bool SetParameter(string strYourParameter);
    }

    
    [DataContract]
    public class EmployeeInfo
    {
        [DataMember]
        public int EmployeeID
        {
            get;
            set;
        }

        [DataMember]
        public string EmployeeName
        {
            get;
            set;
        }
    }
}

Service1.svc.cs
namespace WcfService1
{
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class Service1 : IService1
    {
        public string SearchCriteria
        {
            set
            {
                System.Web.HttpContext.Current.Session["SearchCriteria"] = value;
            }
            get
            {
                if (System.Web.HttpContext.Current.Session["SearchCriteria"] != null)
                {
                    return Convert.ToString(System.Web.HttpContext.Current.Session["SearchCriteria"]);
                }
                else
                    return null;
            }
        }

        public ResultData GetData(int startRowIndex, int maximumRows, string sortExpression, string filterExpression)
        {
            ResultData result = new ResultData();
            result.Count = 0;
            if (this.SearchCriteria != null)
            {
                IQueryable<EmployeeInfo> yourdata = (from p in GenerateData(this.SearchCriteria)
                                                     select p).AsQueryable<EmployeeInfo>();

                GridLinqBindingData<EmployeeInfo> data = RadGrid.GetBindingData(yourdata, startRowIndex, maximumRows, sortExpression, filterExpression);

                result.Data = data.Data.OfType<EmployeeInfo>().Select(p => new EmployeeInfo()
                {
                    EmployeeID = p.EmployeeID,
                    EmployeeName = p.EmployeeName,
                }).ToList();
                result.Count = data.Count;
                return result;
            }
            return result;
        }

        public bool SetParameter(string strYourParameter)
        {
            if (!string.IsNullOrEmpty(strYourParameter))
            {
                this.SearchCriteria = strYourParameter; 
            }
            else
            {
                this.SearchCriteria = null;
            }
            return true;
        }

        protected List<EmployeeInfo> GenerateData(string parameter)
        {
            List<EmployeeInfo> empinfo = new List<EmployeeInfo>();

            for (int i = 0; i < 10; i++)
            {
                EmployeeInfo employeeInfo = new EmployeeInfo();
                employeeInfo.EmployeeID = i;
                employeeInfo.EmployeeName = parameter + i.ToString();
                empinfo.Add(employeeInfo);
            }

            for (int i = 10; i < 20; i++)
            {
                EmployeeInfo employeeInfo = new EmployeeInfo();
                employeeInfo.EmployeeID = i;
                employeeInfo.EmployeeName = parameter + i.ToString();
                empinfo.Add(employeeInfo);
            }

            for (int i = 20; i < 30; i++)
            {
                EmployeeInfo employeeInfo = new EmployeeInfo();
                employeeInfo.EmployeeID = i;
                employeeInfo.EmployeeName = parameter + i.ToString();
                empinfo.Add(employeeInfo);
            }

            return empinfo;
        }
    }

    public class ResultData
    {
        public int Count { get; set; }
        public List<EmployeeInfo> Data { get; set; }
    }

    public enum SortDirection
    {
        Ascending = 0,
        Descending = 1
    }

    public class GenericComparer<T> : IComparer<T>
    {
        public string SortExpression { get; set; }
        public int SortDirection { get; set; } // 0:Ascending, 1:Descending 

        public GenericComparer(string sortExpression, int sortDirection)
        {
            this.SortExpression = sortExpression;
            this.SortDirection = sortDirection;
        }
        public GenericComparer() { }

        #region IComparer<T> Members
        public int Compare(T x, T y)
        {
            PropertyInfo propertyInfo = typeof(T).GetProperty(SortExpression);
            IComparable obj1 = (IComparable)propertyInfo.GetValue(x, null);
            IComparable obj2 = (IComparable)propertyInfo.GetValue(y, null);

            if (obj1 == null || obj2 == null) return 0;

            if (SortDirection == 0)
            {
                return obj1.CompareTo(obj2);
            }
            else return obj2.CompareTo(obj1);
        }
        #endregion
    }
}

Web.config
<configuration>

 <system .web="">
  <compilation debug="true" targetframework="4.0">
 </compilation></system>
 <system .servicemodel="">
  <bindings>
   <webhttpbinding>
    <binding allowcookies="false" bypassproxyonlocal="false" closetimeout="00:35:00" crossdomainscriptaccessenabled="true" hostnamecomparisonmode="StrongWildcard" maxbufferpoolsize="2147483647" maxreceivedmessagesize="2147483647" name="RestServiceBinding" opentimeout="00:35:00" receivetimeout="00:35:00" sendtimeout="00:35:00" usedefaultwebproxy="true">
     <readerquotas maxarraylength="2147483647" maxbytesperread="2147483647" maxdepth="2147483647" maxnametablecharcount="2147483647" maxstringcontentlength="2147483647">
     <security mode="None">
    </security></readerquotas></binding>
   </webhttpbinding>
  </bindings>
  <behaviors>
   <endpointbehaviors>
    <behavior name="RestEndpointBehaviour">
     <webhttp automaticformatselectionenabled="false" defaultoutgoingresponseformat="Json" faultexceptionenabled="true" helpenabled="true">
    </webhttp></behavior>
   </endpointbehaviors>
   <servicebehaviors>
    <behavior name="CommonServiceBehaviour">
     <servicemetadata httpgetenabled="true">
     <servicedebug includeexceptiondetailinfaults="true">
    </servicedebug></servicemetadata></behavior>
   </servicebehaviors>
  </behaviors>
  <services>
   <service behaviorconfiguration="CommonServiceBehaviour" name="WcfService1.Service1">
    <endpoint address="" behaviorconfiguration="RestEndpointBehaviour" binding="webHttpBinding" bindingconfiguration="RestServiceBinding" contract="WcfService1.IService1"></endpoint>
   </service>
  </services>
  <servicehostingenvironment aspnetcompatibilityenabled="true">
 </servicehostingenvironment></system>
 <system .webserver="">
  <modules runallmanagedmodulesforallrequests="true">
 </modules></system>

</configuration>

RestServiceWithRadGrid.aspx
<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
    <telerik:radcodeblock id="RadCodeBlock1" runat="server">
        <script type="text/javascript">
            var UrlForsetParameter = 'http://localhost/WcfService1/Service1.svc/SetParameter';

            function Setserachparameter() {
                
                var RadTextBox1 = $find("<%= RadTextBox1.ClientID %>");
                var strYourParameter = RadTextBox1.get_value();
                jQuery.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    data: JSON.stringify(strYourParameter),
                    dataType: "json",
                    url: UrlForsetParameter,

                    success: function (Responce) {
                        var grid = $find("<%=RadGrid1.ClientID %>");
                        var MasterTable = grid.get_masterTableView();
                        MasterTable.rebind();
                    },
                    error: function (xhr, ajaxOptions, thrownError) {


                    }
                });

                return false;
            }

        </script>
    </telerik:radcodeblock>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        

        <telerik:radscriptmanager id="RadScriptManager1" runat="server">
        </telerik:radscriptmanager>
        <table>
<tr>
                <td>
                    Search Text
                </td>
                <td>
                    <telerik:radtextbox id="RadTextBox1" runat="server">
                    </telerik:radtextbox>
                </td>
            </tr>
<tr>
                <td colspan="2">
                    <asp:button id="Button1" onclientclick="Setserachparameter();" runat="server" text="Get Record">
                </asp:button></td>
            </tr>
</table>
<telerik:radgrid allowpaging="true" allowsorting="true" autogeneratecolumns="false" id="RadGrid1" runat="server">
            <pagerstyle alwaysvisible="true">
            <mastertableview>
                <columns>
                    <telerik:gridboundcolumn datafield="EmployeeID" headertext="EmployeeID" uniquename="EmployeeID">
                    </telerik:gridboundcolumn>
                    <telerik:gridboundcolumn datafield="EmployeeName" headertext="EmployeeName" uniquename="EmployeeName">
                    </telerik:gridboundcolumn>
                </columns>
            </mastertableview>
            <clientsettings>
                <databinding filterparametertype="Linq" location="http://localhost/WcfService1/Service1.svc" selectmethod="GetData" sortparametertype="Linq">
                </databinding>
            </clientsettings>
        </pagerstyle></telerik:radgrid>
    </div>
</form>
</body>
</html>
You can also check this(Client Binding to WCF Web Service) link for more information.

As per above link we can able to binding our RadGrid with WCF service. But in some case we have to use more parameters in method (GetDataAndCount()) At that time you can try with above code.

In this code i have take one session properties in at service level. On button click i have set parameter in service's session property. Then after i rebind my RadGrid, so it will called method(GetDataAndCount()) in this, by using session property first of all get the specific data from DB/Generate dummy data then apply grid's parameter in it.

You can also check output in below image.


DOWNLOAD DEMO

Friday, 27 July 2012

Access RadGrid Row and Column on Client Side

Get Client Data key on Client

<telerik:radcodeblock id="RadCodeBlock1" runat="server">
        <script type="text/javascript">
            function AccessOnclient() {
                var grid = $find("<%= RadGrid1.ClientID %>");
                if (grid) {
                    var MasterTable = grid.get_masterTableView();
                    var Rows = MasterTable.get_dataItems();
                    for (var i = 0; i < Rows.length; i++) {
                        var row = Rows[i];
                        var ClientDataKey_ID = row.getDataKeyValue("ID");
                    }
                }
                return false;
            }
        </script>
    </telerik:radcodeblock>
Get Template Column Control

<telerik:radcodeblock id="RadCodeBlock1" runat="server">
        <script type="text/javascript">
            function AccessOnclient() {
                var grid = $find("<%= RadGrid1.ClientID %>");
                if (grid) {
                    var MasterTable = grid.get_masterTableView();
                    var Rows = MasterTable.get_dataItems();
                    for (var i = 0; i < Rows.length; i++) {
                        var row = Rows[i];
                        // Method1
                        var lblName_1 = $(row.get_element()).find("span[id*='lblName']").get(0);
                        // Method2
                        var lblName_2 = $telerik.findControl(row.get_element(), "lblName");
                        // Method3
                        var lblName_3 = row.findControl("lblName");
                    }
                }
                return false;
            }
        </script>
    </telerik:radcodeblock>
Access Column Text

<telerik:radcodeblock id="RadCodeBlock1" runat="server">
        <script type="text/javascript">
            function AccessOnclient() {
                var grid = $find("<%= RadGrid1.ClientID %>");
                if (grid) {
                    var MasterTable = grid.get_masterTableView();
                    var Rows = MasterTable.get_dataItems();
                    for (var i = 0; i < Rows.length; i++) {
                        var row = Rows[i];
                        // Method1
                        var getCellText_1 = row.get_element().cells[0].innerHTML;
                        // Method2
                        var getCellText_2 = row.get_cell("ID").innerHTML;
                        // Method3
                        var getCellText_2 = row.get_cell("Name").getElementsByTagName("span")[0].innerHTML; //this code also work for Checkboxcolunm, hyperlinkcolumn...etc
                    }
                }
                return false;
            }
        </script>
    </telerik:radcodeblock>
Access Column's property here

<telerik:radcodeblock id="RadCodeBlock1" runat="server">
        <script type="text/javascript">
            function AccessOnclient() {
                var grid = $find("<%= RadGrid1.ClientID %>");
                if (grid) {
                    var MasterTable = grid.get_masterTableView();
                    var Columns = MasterTable.get_columns();
                    for (var i = 0; i < Columns.length; i++) {
                        var column = Columns[0];
                        var columnUniqueName = column.get_uniqueName();
                        var columnDataField = column.get_dataField();
                        var columnfilterFunction = column.get_filterFunction();
                    }
                }
                return false;
            }
        </script>
    </telerik:radcodeblock>
Access Control in Edit mode

<telerik:radcodeblock id="RadCodeBlock1" runat="server">
        <script type="text/javascript">
            function AccessOnclient() {
                var grid = $find("<%= RadGrid1.ClientID %>");
                if (grid) {
                    var EditItems = grid.get_editItems();
                    for (var i = 0; i < EditItems.length; i++) {
                        var editItem = EditItems[0];
                        var checkbox1 = $(editItem.get_editFormItem()).find("input[id*='CheckBox1']").get(0)
                    }

                }
                return false;
            }
        </script>
    </telerik:radcodeblock>
Access Control in insert mode

<telerik:radcodeblock id="RadCodeBlock1" runat="server">
    <script type="text/javascript">
        function AccessOnclient() { 
            var grid = $find("<%= RadGrid1.ClientID %>");
            if (grid) {
                var MasterTable = grid.get_masterTableView();
                var insertRow = MasterTable.get_insertItem();
                var checkbox1 = $(insertRow).find("input[id*='CheckBox1']").get(0);
                //You can access other controls from below container
                //$(insertRow)
            }
            return false;
        }
    </script>
</telerik:radcodeblock>
ASPX
<telerik:radscriptmanager id="RadScriptManager1" runat="server">
        </telerik:radscriptmanager>
        <telerik:radajaxmanager id="RadAjaxManager1" runat="server">
        </telerik:radajaxmanager>
        <telerik:radajaxloadingpanel id="RadAjaxLoadingPanel1" runat="server">
        </telerik:radajaxloadingpanel>
        <asp:button id="Button1" onclientclick="return AccessOnclient();" runat="server" text="Access On Client"></asp:button>
       
        <telerik:radgrid allowfilteringbycolumn="true" autogeneratecolumns="false" id="RadGrid1" onneeddatasource="RadGrid1_NeedDataSource" runat="server">
            <mastertableview clientdatakeynames="ID" commanditemdisplay="Top">
                <columns>
                    <telerik:gridboundcolumn datafield="ID" headertext="ID" uniquename="ID">
                    </telerik:gridboundcolumn>
                    <telerik:gridtemplatecolumn headertext="Name" uniquename="Name">
                        <itemtemplate>
                            <asp:label id="lblName" runat="server" text="&lt;%# Eval(&quot;Name&quot;) %&gt;"></asp:label>
                        </itemtemplate>
                        <edititemtemplate>
                            <asp:checkbox id="CheckBox1" runat="server">
                        </asp:checkbox></edititemtemplate>
                    </telerik:gridtemplatecolumn>
                    <telerik:grideditcommandcolumn uniquename="EditColumn">
                    </telerik:grideditcommandcolumn>
                </columns>
            </mastertableview>
        </telerik:radgrid>
ASPX.CS
 protected void RadGrid1_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
            dynamic data = new[] {
               new { ID = 1, Name ="Name_1"},
               new { ID = 2, Name = "Name_2"},
               new { ID = 3, Name = "Name_3"},
               new { ID = 4, Name = "Name_4"},
               new { ID = 5, Name = "Name_5"}
           };
            RadGrid1.DataSource = data;
        }

Friday, 6 July 2012

Visual Studio 2012 and ASP.NET 4.5 Features

You can find information about new features and enhancements in Visual Studio 2012 and ASP.NET 4.5 by reviewing the below Ebook.


Download the Free Ebook



Access Another control which was in same level or in row


 function YourFunctionName(sender, args) {
                // Do not forget to add jquery in reference
                var SenderId = sender.id;
                //var SenderId = sender.get_element().id;
                //var SenderId =  sender.get_id();
                var RadTextBox1 = $("#" + SenderId).get(0);
                var RadTextBox2 = $("#" + SenderId.replace("RadTextBox1", "RadTextBox2")).get(0);
               // for telerik /radcontrols
                var RadTextBox2 = $telerik.findTextBox(SenderId.replace("RadTextBox1", "RadTextBox2"));

            }

Tuesday, 26 June 2012

Space added in autoGenerated column header problem in Radgrid


protected void RadGrid1_ColumnCreated(object sender, GridColumnCreatedEventArgs e)
{
        if (!string.IsNullOrEmpty(e.Column.UniqueName) && !string.IsNullOrEmpty(e.Column.HeaderText))
            e.Column.HeaderText = e.Column.UniqueName;
        //OR
        e.Column.HeaderText = e.Column.HeaderText.Replace(" ", "");
}

Wednesday, 20 June 2012

Customizing items of RadGrid page size combo based on total records

Telerik provides the easy to use RadGrid control with inbuilt paging feature.

By default paging combo includes 10, 20 and 50 page sizes, regardless of number of records displayed in the grid (i.e. if records counts to 11 then also page size combo displays 10, 20 and 50).

If we want to customize the page size combo items to show

  •         Records count > 10 then page size items should show 10 and 20
  •         Records count >= 20 then page size items should show 10, 20 and 50

In order to achieve the above functionality, we will be using RadGrid ItemCreated and ItemEvent events, refer the below code.
private int totalItemCount;

protected void RadGrid1_ItemEvent(object sender, GridItemEventArgs e)
{
        if (e.EventInfo is GridInitializePagerItem)
        {
            totalItemCount = (e.EventInfo as GridInitializePagerItem).PagingManager.DataSourceCount;
        }
}

protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
        if (e.Item is GridPagerItem)
        {
            GridPagerItem pagerItem = (GridPagerItem)e.Item;
            RadComboBox pageSizeCombo = (RadComboBox)pagerItem.FindControl("PageSizeComboBox");

            for (int i = 0; i &lt; pageSizeCombo.Items.Count; i++)
            {
                RadComboBoxItem item = pageSizeCombo.Items[i];

                if (Convert.ToInt32(item.Value) &gt; totalItemCount)
                {
                    i--;
                    pageSizeCombo.Items.Remove(item.Index);
                }
            }

            if (totalItemCount != Convert.ToInt32(pageSizeCombo.Items[pageSizeCombo.Items.Count - 1].Value))
            {
                RadComboBoxItem item = new RadComboBoxItem();
                item = new RadComboBoxItem(totalItemCount.ToString(), totalItemCount.ToString());
                item.Attributes.Add("ownerTableViewId", e.Item.OwnerTableView.ClientID);
                pageSizeCombo.Items.Add(item);
            }
// If you lost selected value in Pagesize combo
//pageSizeCombo.FindItemByValue(e.Item.OwnerTableView.PageSize.ToString()).Selected = true;

        }

}
Displaying page combo always regardless of number of records, refer below code
<telerik:radgrid allowpaging="true" id="RadGrid1" runat="server">
    <mastertableview>
         <pagerstyle alwaysvisible="true"></pagerstyle>
              . . . . 
              . . . . 
    </mastertableview>
</telerik:radgrid>
Showing "Show All" option in page size combo, refer below combo
private int totalItemCount;
protected void RadGrid1_ItemEvent(object sender, GridItemEventArgs e)
{
        if (e.EventInfo is GridInitializePagerItem)
        {
            totalItemCount = (e.EventInfo as GridInitializePagerItem).PagingManager.DataSourceCount;
        }
}

protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
        if (e.Item is GridPagerItem)
        {   
            GridPagerItem pagerItem = (GridPagerItem)e.Item;
            RadComboBox PageSizeCombo = (RadComboBox)pagerItem.FindControl("PageSizeComboBox");
            RadComboBoxItem item1 = new RadComboBoxItem();
            item1 = new RadComboBoxItem("Show All", totalItemCount.ToString());
            item1.Attributes.Add("ownerTableViewId", e.Item.OwnerTableView.ClientID);
            PageSizeCombo.Items.Add(item1);

        }
}

Thursday, 31 May 2012

Telerik Webinar Week will be held June 18-22, 2012.

The Q2 2012 Webinar Week is quickly approaching (as is our upcoming major release)! As always, we are organizing this week-long event packed with hour-long webinar sessions to walk you through all the awesome things we’ve been working on during the past four months. If you’re eager to be among the first to learn how the Q2 bits can enhance your productivity,

Book your seat for Webinar Week now>>
Webinar Week will be held June 18-22, 2012. And you know the drill, one lucky attendee at each webinar will win more than $2,000 worth of software. This time around though, as a token of our appreciation for being our customers, we have decided to also grant each Webinar Week attendee with a discount code valid towards a next Telerik purchase, upgrade or renewal!
Our evangelists have prepared amazing things to show you, so be there!

Saturday, 19 May 2012

How to access the control from itemtemplate in Radgrid on client side

You get control from itemtemplate in Radgrid by below methods.

// Method1
var ChkSelect =  $(row.get_element()).find("input[id*='ChkSelect']").get(0);
// Method2
var ChkSelect = $telerik.findControl(row.get_element(), "ChkSelect");
// Method3
var ChkSelect = row.findControl("ChkSelect"); 
For how to access row from radgrid check this link.

Saturday, 31 March 2012

how to use RadConfirm as simple confirm

JS CODE:

<script type="text/javascript">
    window.blockConfirm = function (text, mozEvent, oWidth, oHeight, callerObj, oTitle) {
        var ev = mozEvent ? mozEvent : window.event;
        ev.cancelBubble = true;
        ev.returnValue = false;
        if (ev.stopPropagation) ev.stopPropagation();
        if (ev.preventDefault) ev.preventDefault
        var callerObj = ev.srcElement ? ev.srcElement : ev.target;
        if (callerObj) {
            var callBackFn = function (arg) {
                if (arg) {
                    callerObj["onclick"] = "";
                    if (callerObj.tagName == "A") {
                        try {
                            eval(callerObj.href)
                        }
                        catch (e) { }
                    }
                    else if (callerObj.click) {
                        callerObj.click();
                    }
                }
            }
            radconfirm(text, callBackFn, oWidth, oHeight, callerObj, oTitle);
        }
        return false;
    }
</script>

HOW TO USE:

<asp:Button ID="btnDelete" OnClientClick="return blockConfirm('<br/>Are you sure you want to delete this record?<br/>&nbsp;', event, 340, 150, '', 'Delete confirm')" Text="Delete" runat="server" />



Friday, 30 March 2012

using linq access radgrid's item or row


List<GridDataItem> Items = (from item in radAvailableNetworks.MasterTableView.Items.Cast<GridDataItem>()
where ((CheckBox)item.FindControl("chkSelect")) != null
&& ((CheckBox)item.FindControl("chkSelect")).Checked
select item).ToList();

Friday, 18 November 2011

access the radgrid's control on client

 You can access ItemTemplate's control on client side using below JS.

JS code 


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

                if (grid) {
                    var MasterTable = grid.get_masterTableView();
                    var Rows = MasterTable.get_dataItems();
                    for (var i = 0; i < Rows.length; i++) {
                        var row = Rows[i];
                        var RadNumericTextBox1 = row.findControl("RadNumericTextBox1");
                        var childTable = row.get_nestedViews();
                        if (childTable) {
                            var childItems = childTable[0].get_dataItems();
                            for (var j = 0; j < childItems.length; j++) {
                                var childRow = childItems[j];
                                var CheckBox1 = $(childRow.get_element()).find("input[id*='CheckBox1']");
                            }
                        }
                    }
                 }
DOWNLOAD DEMO  OR VIEW THIS ARTICLE IN TELERIK