Hi
I'm having some problems with using filtering in radGrid. As you can se in thread title, I'm using quite old version of telerik, but I cannot currently move to newer version.
The problem is, that when I put some text in filter textbox and press enter, default action on page is started (which is emulating click on first button found on page). I've set grid properties, so that it would automatically filter data in grid on enter key. What I've found is, that JavaScript, that runs after key press, returns false when pressed key is enter. What I would like to achieve is filtering grid data after enter key is pressed. All works fine when I enter some text and press tab key or move focus somewhere else by clicking mouse button.
I couldn't find any info about this behavior on your forum, so I don't know whether it's bug, or maybe I'm doing something wrong.
Here are code samples, that I use in my project. I would really appreciate if you could help me deal with this. Thanks in advance!
Grid code:
01.<telerik:RadGrid ID="gridProjects" runat="server" DataSourceID="ClientProjectsSourceGridData"02. OnItemDataBound="gridProjects_ItemDataBound" AutoGenerateColumns="false" PageSize="15"AllowPaging="true" AllowSorting="true" CssClass="GridProjectsStyle"OnSelectedIndexChanged="gridProjects_SelectedIndexChanged"03.BorderStyle="None" AllowFilteringByColumn="true" EnableLinqExpressions="false"> 04. <GroupingSettings CaseSensitive="false" /> 05. <HeaderStyle CssClass="GridHeader" /> 06. <ClientSettings EnableRowHoverStyle="true" EnablePostBackOnRowClick="true"> 07. <Selecting AllowRowSelect="true" /> 08. </ClientSettings> 09. <MasterTableView OverrideDataSourceControlSorting="true" AllowFilteringByColumn="true"> 10. <Columns> 11. <telerik:GridTemplateColumn HeaderText="Project" DataField="Name" SortExpression="Name" UniqueName="Name" AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" ShowFilterIcon="false"> 12. <ItemTemplate> 13. <asp:HyperLink ID="ProjectName" runat="server" CssClass="ProjectNameLink" NavigateUrl='<%# "ProjectDetails.aspx?projectId=" + Eval("Identity").ToString() %>'> <%#Eval("Name")%> </asp:HyperLink> 14. </ItemTemplate> 15. </telerik:GridTemplateColumn>HTML and JavaScript generated from this code:
1.<input type="text" onkeydown="if((event.keyCode == 13 || event.keyCode == 20)) return false;"onchange="setTimeout(function(){$find("ctl00_ContentPlaceHolder1_gridProjects_ctl00").filter("Name", $get("ctl00_ContentPlaceHolder1_gridProjects_ctl00_ctl02_ctl02_FilterTextBox_Name").value);}, 0);"class="rgFilterBox" id="ctl00_ContentPlaceHolder1_gridProjects_ctl00_ctl02_ctl02_FilterTextBox_Name"size="10" name="ctl00$ContentPlaceHolder1$gridProjects$ctl00$ctl02$ctl02$FilterTextBox_Name"><asp:Repeater runat="server" ID="rep"> <ItemTemplate> <telerik:RadNumericTextBox id="txt" NumberFormat-DecimalDigits="0" NumberFormat-GroupSeparator="" runat="server" Type="Number" /> <asp:RequiredFieldValidator runat="server" ID="rfv" ControlToValidate="txt">*</asp:RequiredFieldValidator><br /></asp:Repeater>$(document).ready(function () { $("input[name$='chk']").change(function () { chk_OnChange(this); });}); function chk_OnChange(sender) { if (!sender.checked) { $("input[name*='txt']").val('0'); } else { $("input[name*='txt']").val(''); } }
gv1.MasterTableView.Columns.Clear(); and gv1.Columns.Clear(); methods but they have not worked for me.
Please help me to fix this. Sample code will be greatly appreciated.
Thanks,
Sumanth
I have two comboboxes that are inside a panel control. The panel's visibility is false initially. When the user selects an option, the panel with the 2 combo boxes is made visible. Depending on what the user selects in the first combo box, I need to enable or disable the second combo box client side. However, I am unable to access the combo using $find('<%= cbxAdminAction.ClientID %>').
I have also tried accessing the combo boxes usingTelerik.Web.UI.RadComboBox.ComboBoxes. I was able to find the combo controls in the Firebug console. However, when the page loads, Telerik.Web.UI.RadComboBox.ComboBoxes[14] is out of range.
How do I access the combo boxes from client side?
The function below is wired to the onClientSelectedIndexChanged event for the first combo box.
01.function EnableSubActionDropDown(combo, eventArgs) 02.{ 03. var value = Telerik.Web.UI.RadComboBox.ComboBoxes[14].get_value(); 04. 05. if (value != "99") 06. { 07. Telerik.Web.UI.RadComboBox.ComboBoxes[15].disable; 08. } 09. else10. { 11. Telerik.Web.UI.RadComboBox.ComboBoxes[15].enable; 12. } 13.}if (ControlToLoad == "ConCapitalDetailsPS") { Financial.ConCapitalDetails ucConCapitalDetails = Page.LoadControl("~/Grants/Phases/Financial/ConCapitalDetails.ascx") as Financial.ConCapitalDetails; ucConCapitalDetails.ID = "ConCapitalDetailsPS"; PhaseContent.Controls.Clear(); PhaseContent.Controls.Add(ucConCapitalDetails); ucConCapitalDetails.ActivePhase = ActivePhase; ucConCapitalDetails.BindData(); }
protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
//int iGrantID = ActivePhase.GrantId; //int iPhaseID = ActivePhase.Id;using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Thc.Gms.Services; using Thc.Gms.Core; using Microsoft.Practices.EnterpriseLibrary.Data; using System.Data; using System.Transactions; using System.Data.Common; using Telerik.Web.UI; namespace Thc.Gms.Web.UI.Grants.Phases.Financial { public partial class HistoricExpenditures : System.Web.UI.UserControl { public Thc.Gms.Core.Phase ActivePhase { get { return ViewState["Phase"] as Thc.Gms.Core.Phase; } set { this.ViewState.Add("Phase", value); } } protected void Page_Load(object sender, EventArgs e) { } protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e) { Thc.Gms.Core.Phase ActivePhaseSession = (Phase)Session["ActivePhase"]; int iGrantID = 267; int iPhaseID = 1517; //int iGrantID = ActivePhase.GrantId; //int iPhaseID = ActivePhase.Id; //GrantService gService = new GrantService(); //Grant grant = gService.FindBy(ActivePhase.GrantId); //City.Text = grant.Address.City; //State.Text = grant.Address.State.Abbreviation; //GrantName.Text = grant.Name; //PhaseNameTitle.Text = ActivePhase.Name; string sql = "[dbo].[financial_getExpendituresByFtaskId]"; Database _database = DatabaseFactory.CreateDatabase("GMSData"); DataSet tempDataset = new DataSet(); DataTable DetailsData = new DataTable("Details"); DetailsData.Columns.Add("ftaskid"); DetailsData.Columns.Add("level2", typeof(string)); tempDataset.Tables.Add(DetailsData); using (TransactionScope scope = new TransactionScope()) { using (DbCommand command = _database.GetStoredProcCommand(sql)) { _database.AddInParameter(command, "@grantid", DbType.Int32, iGrantID); _database.AddInParameter(command, "@phaseid", DbType.Int32, iPhaseID); _database.LoadDataSet(command, tempDataset, "Details"); } scope.Complete(); } RadGrid1.DataSource = tempDataset; } public void BindData() { //int iGrantID = ActivePhase.GrantId; //int iPhaseID = ActivePhase.Id; //GrantService gService = new GrantService(); //Grant grant = gService.FindBy(ActivePhase.GrantId); //City.Text = grant.Address.City; //State.Text = grant.Address.State.Abbreviation; //GrantName.Text = grant.Name; //PhaseNameTitle.Text = ActivePhase.Name; //string sql = "[dbo].[financial_getExpendituresByFtaskId]"; //Database _database = DatabaseFactory.CreateDatabase("GMSData"); //DataSet tempDataset = new DataSet(); //DataTable DetailsData = new DataTable("Details"); //DetailsData.Columns.Add("ftaskid"); //DetailsData.Columns.Add("level2", typeof(string)); //tempDataset.Tables.Add(DetailsData); //using (TransactionScope scope = new TransactionScope()) //{ // using (DbCommand command = _database.GetStoredProcCommand(sql)) // { // _database.AddInParameter(command, "@grantid", DbType.Int32, iGrantID); // _database.AddInParameter(command, "@phaseid", DbType.Int32, iPhaseID); // _database.LoadDataSet(command, tempDataset, "Details"); // } // scope.Complete(); //} //RadGrid1.DataSource = tempDataset; //RadGrid1.DataBind(); } protected void RadGrid1_UpdateCommand(object source, GridCommandEventArgs e) { int iGrantID = ActivePhase.GrantId; int iPhaseID = ActivePhase.Id; int iUserID = SessionHelper.CurrentUser.Id; GridEditableItem editedItem = e.Item as GridEditableItem; int iFTaskID = Int32.Parse(editedItem.GetDataKeyValue("ftaskid").ToString()); int iQtr = Int32.Parse((editedItem["Qtr"].Controls[0] as TextBox).Text); int iYear = Int32.Parse((editedItem["Year"].Controls[0] as TextBox).Text); decimal dHP6 = decimal.Parse((editedItem["H6_Exp"].Controls[0] as TextBox).Text); decimal dPH6 = decimal.Parse((editedItem["PH_Exp"].Controls[0] as TextBox).Text); decimal dOth6 = decimal.Parse((editedItem["Oth_Exp"].Controls[0] as TextBox).Text); decimal dFF6 = decimal.Parse((editedItem["FF_Exp"].Controls[0] as TextBox).Text); Dictionary<string, decimal> ExpColl = new Dictionary<string, decimal>(); ExpColl.Add("H6", dHP6); ExpColl.Add("PH", dPH6); ExpColl.Add("Oth", dOth6); ExpColl.Add("FF", dFF6); foreach (KeyValuePair<string, decimal> item in ExpColl) { string sql = "[dbo].[financial_setExpendituresByYearQtr]"; Database _database = DatabaseFactory.CreateDatabase("GMSData"); using (TransactionScope scope = new TransactionScope()) { using (DbCommand command = _database.GetStoredProcCommand(sql)) { _database.AddInParameter(command, "@grantid", DbType.Int32, iGrantID); _database.AddInParameter(command, "@phaseid", DbType.Int32, iPhaseID); _database.AddInParameter(command, "@ftaskId", DbType.Int32, iFTaskID); _database.AddInParameter(command, "@amount", DbType.Decimal, item.Value); _database.AddInParameter(command, "@fundtype ", DbType.String, item.Key); _database.AddInParameter(command, "@year", DbType.Int32, iYear); _database.AddInParameter(command, "@qtr", DbType.Int32, iQtr); _database.AddInParameter(command, "@userid", DbType.Int32, iUserID); _database.ExecuteNonQuery(command); } scope.Complete(); } } } protected void RadGrid1_DetailTableDataBind(object source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e) { int iGrantID = ActivePhase.GrantId; int iPhaseID = ActivePhase.Id; GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem; int iCategoryID = Int32.Parse(dataItem.GetDataKeyValue("FTaskID").ToString()); string sql = "[dbo].[financial_getExpendituresOVerTime]"; Database _database = DatabaseFactory.CreateDatabase("GMSData"); DataSet tempDataset = new DataSet(); DataTable DetailsData = new DataTable("Details"); DetailsData.Columns.Add("ftaskid"); DetailsData.Columns.Add("qtr", typeof(int)); DetailsData.Columns.Add("year", typeof(int)); DetailsData.Columns.Add("H6_Exp", typeof(decimal)); DetailsData.Columns.Add("H6_Use", typeof(decimal)); DetailsData.Columns.Add("PH_Exp", typeof(decimal)); DetailsData.Columns.Add("PH_Use", typeof(decimal)); DetailsData.Columns.Add("Oth_Exp", typeof(decimal)); DetailsData.Columns.Add("Oth_Use", typeof(decimal)); DetailsData.Columns.Add("FF_Exp", typeof(decimal)); DetailsData.Columns.Add("FF_Use", typeof(decimal)); tempDataset.Tables.Add(DetailsData); using (TransactionScope scope = new TransactionScope()) { using (DbCommand command = _database.GetStoredProcCommand(sql)) { _database.AddInParameter(command, "@grantid", DbType.Int32, iGrantID); _database.AddInParameter(command, "@phaseid", DbType.Int32, iPhaseID); _database.AddInParameter(command, "@ftaskId", DbType.Int32, iCategoryID); _database.LoadDataSet(command, tempDataset, "Details"); } scope.Complete(); } RadGrid1.DataSource = tempDataset; // RadGrid1.DataBind(); } protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item is GridEditFormItem && e.Item.IsInEditMode && e.Item.OwnerTableView.Name == "GridDetails") { GridEditFormItem editItem = (GridEditFormItem)e.Item; if (false) { TextBox txt = (TextBox)editItem.FindControl("unH6_Exp"); txt.ReadOnly = true; } } } } }