// Your open popup code comes here $('UploadActivitySheet').removeData("validator"); //Refresh the validators $.validator.unobtrusive.parse(document);
Wednesday, 10 October 2012
validation is not working in popup in mvc
Friday, 31 August 2012
RadGrid with WCF Rest Service
Create WCF service.
IService1.cs
Service1.svc.cs
Web.config
RestServiceWithRadGrid.aspx
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
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>
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
Get Template Column Control
Access Column Text
Access Column's property here
Access Control in Edit mode
Access Control in insert mode
ASPX
ASPX.CS
<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>
<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>
<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>
<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>
<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>
<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>
<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="<%# Eval("Name") %>"></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>
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")); }
Subscribe to:
Posts (Atom)