Good Day All
i have a function that is getting called with Page-methods like this
and this method will call thisCode:protected void Bind_SearchBox(object sender, EventArgs e) { RadToolBarItem textItem = RadToolBar1.FindItemByText("Button1"); TextBox txtseach = (TextBox)textItem.FindControl("txtsearch"); try { if (sender.Equals(txtseach)) { Bind_SearchBox(txtseach.Text); } } catch (SqlException ex) { lblMessage.Text = ex.Message; Response.Redirect("View.aspx", false); } }
Code:/// <summary> /// This Function will bind the ListBoxes on the Lefthand side of the Viewer /// It accept a search String /// </summary> public void Bind_SearchBox(String Search) { Session["Search"] = Search; RadPanelBar1.Items.Clear(); RadScheduler1.Appointments.Clear(); //get the Menu inside the toolbar RadToolBarItem textItem = RadToolBar1.FindItemByText("Button1"); RadMenu RadMenu1 = (RadMenu)textItem.FindControl("RadMenu1"); ViewerService.ViewerService obj = new ViewerService.ViewerService(); String SessionKey = obj.newSession(); DateTime Date1 = Convert.ToDateTime("1980-01-01"); DateTime Date2 = Convert.ToDateTime("2012-12-31"); List<string> ParentRecordsRow = new List<string>(); List<string> ChildRecordsField = new List<string>(); ViewerService.extract extract = obj.getObjects(SessionKey, Search, Date1, false, Date2, false, "", ""); try { int Len = extract.set.Length; for (int i = 0; i < Len; i++) { ViewerService.vertex value = extract.set[i];//Row String PanelClass = value.meta; PanelClass = PanelClass.Replace(Remstr, ""); PanelClass = PanelClass.Replace(Remstr2, ""); Appointment app = null; if (value.atom != null) { RadPanelItem pane = RadPanelBar1.Items.FindItemByText(PanelClass); if (pane == null) { RadPanelItem nwpane = new Telerik.Web.UI.RadPanelItem(PanelClass); RadPanelItem nwpaneSpliter = new Telerik.Web.UI.RadPanelItem(PanelClass); nwpaneSpliter.IsSeparator = true; RadPanelBar1.Items.Add(nwpane); pane = nwpane; ParentRecordsRow.Add(PanelClass); } if (value.meta == "za.co.abacus.C_EVENT") { app = new Appointment(); } int atomLen = value.atom.Length; //field for (int j = 0; j < atomLen; j++) { ViewerService.atom atm = value.atom[j]; if (atm.meta.Contains("za.co.reactor.A_LABEL")) { RadPanelItem NewItem = new RadPanelItem(atm.content); pane.Items.Add(NewItem); ChildRecordsField.Add(atm.content); if (app != null) { app.Subject = atm.content; app.Description = atm.content; app.ID = value.key; } } if (app != null && atm.meta.Contains("za.co.abacus.C_EVENT")) { app.ID = atm.content; } if (app != null && atm.meta.Contains("za.co.reactor.A_HORIZON")) { app.Start = Convert.ToDateTime(atm.content); } if (app != null && atm.meta.Contains("za.co.reactor.AA_HORIZON")) { app.End = Convert.ToDateTime(atm.content); } if (app != null && atm.meta.Contains("za.co.reactor.A_TEXT")) { app.Description = atm.content; } if (app != null && app.End > app.Start) { RadScheduler1.DataStartField = app.Start.ToString(); RadScheduler1.DataSubjectField = app.Subject.ToString(); RadScheduler1.DataEndField = app.End.ToString(); RadScheduler1.DataKeyField = app.ID.ToString(); RadScheduler1.SelectedView = SchedulerViewType.MonthView; AddManualAppointments(app.ID.ToString(), app.Start, app.End, app.Subject.ToString()); RadScheduler1.SelectedDate = app.Start; RadScheduler1.Visible = true; LeftPane.Collapsed = false; RadGrid1.DataSource = EAVProcess.GetRecords(ParentRecordsRow, ChildRecordsField); RadGrid1.DataBind(); } } } } RadMenu1.Flow = ItemFlow.Horizontal; //Add the Root RadMenuItem item = new RadMenuItem(); item.Text = ""; item.ImageUrl = "~/images/Add.png"; RadMenu1.Items.Add(item); //Bind Men for (int KK = 0; KK < ParentRecordsRow.Count; KK++) { RadMenuItem itemSeparator = new RadMenuItem(); RadMenuItem childItem = new RadMenuItem(ParentRecordsRow[KK]); //add the menu items childItem.Text = ParentRecordsRow[KK]; //item.ImageUrl = "~/images/o!logo.png"; item.Items.Add(childItem); } } catch (ApplicationException ex) { lblTestlabel.Text = ex.Message; } finally { obj.closeSession(SessionKey); obj = null; extract = null; } }
and the page method for the client side
and on the client sideCode:[WebMethod, System.Web.Script.Services.ScriptMethod] public static string Getadata(String StrSearch) { View obj = new View(); obj.Bind_SearchBox(StrSearch); return StrSearch; }
Code:function keyPress_test() { var tb = document.getElementById("<%=txtsearchid%>"); if (window.event.keyCode == 13) { PageMethods.Getadata(tb.value, myFunction(tb.Value)); ToggleCollapsePane(); } return false; } function myFunction(msg) { alert(msg); }
So when i press enter it start searching and do all the data binding , now its fine but i went to debug it and i saw that this gets fired twice
What is wrong ?
Thanks


Reply With Quote

Bookmarks