|
Subject:
|
Callback in 3 DropDownLists
|
|
Posted By:
|
Paula222
|
Post Date:
|
12/13/2006 3:40:14 AM
|
Hi , i read data to 3 combos - 2 of them depend on other . I don't know how to do another callback to the third DDL - it causes some problems.
|
|
Reply By:
|
gbianchi
|
Reply Date:
|
12/13/2006 7:20:45 AM
|
hi there.. do you have some code?? or any specific problem???
HTH
Gonzalo
|
|
Reply By:
|
Paula222
|
Reply Date:
|
12/13/2006 7:47:26 AM
|
Hi , here is the javascript code in .aspx file : <script language="javascript"> function ClientCallback(result, context){
var childOrganizations = document.forms[0].elements[ '<%=ddlSubCat.UniqueID%>']; if (!childOrganizations){ return; } childOrganizations.length = 0; if (!result){ return; } grp = result.split("~")[1]; result = result.split("~")[0]; var rows = result.split('|'); for (var i = 0; i < rows.length; ++i){ var values = rows[i].split('^'); var option = document.createElement("OPTION"); option.value = values[0]; option.innerHTML = values[1]; if (option != undefined && values[1] != undefined && values[0] != undefined) { childOrganizations.appendChild(option); } //childOrganizations.options.add(option , i); } var childGrp = document.forms[0].elements[ '<%=ddlGroup.UniqueID%>']; childGrp.length = 0; var rows1 = grp.split('|'); for (var j = 0; j < rows1.length; ++j){ var values1 = rows1[j].split('^'); var option1 = document.createElement("OPTION"); option1.value = values1[0]; option1.innerHTML = values1[1]; if (option1 != undefined && values1[1] != undefined && values1[0] != undefined) { childGrp.appendChild(option1); } } } function ClientCallback1(result, context){ var childGrp = document.forms[0].elements[ '<%=ddlGroup.UniqueID%>']; childGrp.length = 0; var rows1 = result.split('|'); for (var j = 0; j < rows1.length; ++j){ var values1 = rows1[j].split('^'); var option1 = document.createElement("OPTION"); option1.value = values1[0]; option1.innerHTML = values1[1]; if (option1 != undefined && values1[1] != undefined && values1[0] != undefined) { childGrp.appendChild(option1); } //childOrganizations.options.add(option , i); } } function GetChildren(arg, context) {
<%= callBack %> } function GetSubChildren(arg, context) { <%= callBack1 %> } </script>
AND here is part of the .aspx.cs file code : public partial class BookPhone : System.Web.UI.Page , ICallbackEventHandler { public string callBack , callBack1; public int choice = 1; int arg = 0 , arg3 = 0 ;
protected void Page_Load(object sender, EventArgs e) {
//Response.Write("<script language='JavaScript'>alert('" + Request.Cookies["PUID"].Value + "');</script>"); /*if (Request.Cookies["PUID"] == null || Request.Cookies["PUID"].Value.Trim().Equals("")) { Response.Redirect("default.aspx"); } if (!new UserOwnBooksController().IsUserOwnsBooks(Request.Cookies["PUID"].Value , TryParse(Request.QueryString["BID"]))) { Response.Redirect("default.aspx"); }*/ DataRow dr = new BooksController().GetSpecificBook(int.Parse(Request.QueryString["BID"])); lblCount2.Text = new PhoneController().GetNumOfRecords(int.Parse(Request.QueryString["BID"])).ToString(); //imgPrint1.OnClientClick = "OpenPopUp('" + Request.QueryString["BID"] + "' , '" + txtSearchWords.Text.Trim() + "' , '" + ddlCat111.SelectedValue + "' , '" + ddlSubCat111.SelectedValue + "' , '" + ddlGroup111.SelectedValue + "');"; imgPrint1.PostBackUrl = "PrintScreen.aspx?BID=" + Request.QueryString["BID"] + "&KID=" + txtSearchWords.Text.Trim() + "&CatID=" + ddlCat111.SelectedValue + "&SID=" + ddlSubCat111.SelectedValue + "&GID=" + ddlGroup111.SelectedValue + ""; if (!Page.IsPostBack) { PopulateBirthDate(); PopulateSearch();
} if (dr != null) { lblHeader1.Text = dr[1].ToString(); } foreach (GridViewRow gr in GridView1.Rows) { DataRow dr1 = new PhoneController().GetSpecificRow(TryParse(Request.QueryString["BID"])); if (dr1 != null) { gr.ForeColor = System.Drawing.Color.FromName(dr1[26].ToString()); gr.Font.Size = new FontUnit(dr1[25].ToString()); gr.Font.Name = dr1[24].ToString(); } }
callBack = Page.ClientScript.GetCallbackEventReference(this, "arg" , "ClientCallback", "context"); callBack1 = Page.ClientScript.GetCallbackEventReference(this, "arg", "ClientCallback1", "context");
ddlCat.Attributes.Add("onchange", "GetChildren(this.options[this.selectedIndex].value, 'ddlSubCat');"); ddlSubCat.Attributes.Add("onchange", "GetSubChildren(this.options[this.selectedIndex].value , 'ddlGroup')"); }
public void RaiseCallbackEvent(string eventArgument) { if (choice == 1) { int parentId;
if (Int32.TryParse(eventArgument, out parentId)) { int firstNum = -1000; DataTable dt = new BSubCatsController().GetSubCatsByBookAndCat(int.Parse(Request.QueryString["BID"]), int.Parse(eventArgument)); StringBuilder sb = new StringBuilder(); for (int i = 0; i < dt.Rows.Count; ++i) { sb.Append(dt.Rows[i]["SubCatID"]); sb.Append("^"); sb.Append(dt.Rows[i]["SubCatDescription"]); sb.Append("|"); if (firstNum == -1000) { firstNum = (int)dt.Rows[i]["SubCatID"]; } } sb.Append("~"); arg = int.Parse(eventArgument); DataTable dt1 = new BGroupsController().GetGroupByBookCatAndSubCat(int.Parse(Request.QueryString["BID"]), arg, firstNum); foreach (DataRow dr1 in dt1.Rows) { sb.Append(dr1["GroupID"]); sb.Append("^"); sb.Append(dr1["GroupDesc"]); sb.Append("|"); } } } else if (choice == 2) { StringBuilder sb1 = new StringBuilder(); arg3 = int.Parse(eventArgument); int theNum = arg3 ; DataTable dt3 = new BGroupsController().GetGroupByBookCatAndSubCat(int.Parse(Request.QueryString["BID"]), arg, theNum); foreach (DataRow dr3 in dt3.Rows) { sb1.Append(dr3["GroupID"]); sb1.Append("^"); sb1.Append(dr3["GroupDesc"]); sb1.Append("|"); } } }
public string GetCallbackResult() { if (choice == 1) { int firstNum = -1000; DataTable dt = new BSubCatsController().GetSubCatsByBookAndCat(int.Parse(Request.QueryString["BID"]), arg); StringBuilder sb = new StringBuilder(); for (int i = 0; i < dt.Rows.Count; ++i) { sb.Append(dt.Rows[i]["SubCatID"]); sb.Append("^"); sb.Append(dt.Rows[i]["SubCatDescription"]); sb.Append("|"); if (firstNum == -1000) { firstNum = (int)dt.Rows[i]["SubCatID"]; } } sb.Append("~"); DataTable dt1 = new BGroupsController().GetGroupByBookCatAndSubCat(int.Parse(Request.QueryString["BID"]), arg, firstNum); foreach (DataRow dr1 in dt1.Rows) { sb.Append(dr1["GroupID"]); sb.Append("^"); sb.Append(dr1["GroupDesc"]); sb.Append("|"); } return sb.ToString(); } else if (choice == 2) { StringBuilder sb1 = new StringBuilder(); DataTable dt3 = new BGroupsController().GetGroupByBookCatAndSubCat(int.Parse(Request.QueryString["BID"]), arg, arg3); foreach (DataRow dr3 in dt3.Rows) { sb1.Append(dr3["GroupID"]); sb1.Append("^"); sb1.Append(dr3["GroupDesc"]); sb1.Append("|"); } return sb1.ToString(); } return ""; }
if this code is not sufficient - i'll send you the files to email.
|
|
Reply By:
|
gbianchi
|
Reply Date:
|
12/13/2006 7:53:06 AM
|
i don't have a clue about js, sorry...
you are doing the callbacks with js?
HTH
Gonzalo
|