Good Day All
i have a function that is getting called with Page-methods like this
Code:
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);
}
}
and this method will call this
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
Code:
[WebMethod, System.Web.Script.Services.ScriptMethod]
public static string Getadata(String StrSearch)
{
View obj = new View();
obj.Bind_SearchBox(StrSearch);
return StrSearch;
}
and on the client side
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