none
llamando web service CascadingDropDown desde jquery o javascript

    Pregunta

  • Buenas noches,

    Resulta que estoy usando el control CascadingDropDown de ajax con conexion de base de datos, sobre dos tablas ciudades y sectores, donde cada sector pertenece a una ciudad, resulta que funciona perfectamente pero tengo un listado de empresas en un repeater donde tiene img para editar el registro que desee desde javascript sin hacer postbak para cargar los datos de esta forma:

    <img alt="" src="../Imagenes/editar.png" onclick='editar("<%#DataBinder.Eval(Container.DataItem,"Nombre") %>",

    "<%#DataBinder.Eval(Container.DataItem,"Sector") %>", "<%#DataBinder.Eval(Container.DataItem,"Ciudad") %>")' id="imgEditar" />

    Cuando le doy click a editar necesito que me carguen los sectores en el CascadingDropDown de acuerdo a la ciudad que esta en el repeater. osea es como hacer llamado al webservice de nuevo de acuerdo a ese valor, realizar de nuevo la recarga de los sectores en el dropdownlist deacuerdo a la ciudad ......... CUALQUIER AYUDA SE LOS AGRADEZCO aca les dejo mi webservice:

    [WebMethod] public CascadingDropDownNameValue[] GetCiudades(string knownCategoryValues, string category) { SqlConnection connection = new SqlConnection(@"initial catalog=quehaypahoy; data source=localhost; integrated security=true"); SqlCommand command = new SqlCommand("SELECT * FROM ciudades where estado = 'Activo'"); command.Connection = connection; connection.Open(); SqlDataAdapter adapter = new SqlDataAdapter(command); DataSet dataSet = new DataSet(); adapter.Fill(dataSet); command.Connection.Close(); DataTable tbl = dataSet.Tables[0]; List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>(); foreach (DataRow dr in tbl.Rows) { string sCiudades = (string)dr["nombre"]; int iCiudades = (int)dr["codigo"]; values.Add(new CascadingDropDownNameValue( sCiudades, iCiudades.ToString())); } return values.ToArray(); }

            [WebMethod]
            public CascadingDropDownNameValue[] GetSectores(string knownCategoryValues, string category)
            {
                StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
                int iCiudades;
                if (!kv.ContainsKey("Ciudad") || !Int32.TryParse(kv["Ciudad"], out iCiudades))
                {
                    return null;
                }
                SqlConnection connection = new SqlConnection(@"initial catalog=quehaypahoy; data source=localhost; integrated security=true");
                SqlCommand command = new SqlCommand("SELECT * FROM sectores WHERE estado = 'Activo' and codciudad = " + iCiudades);
                command.Connection = connection;
                connection.Open();
                SqlDataAdapter adapter = new SqlDataAdapter(command);
                DataSet dataSet = new DataSet();
                adapter.Fill(dataSet);
                command.Connection.Close();
                DataTable tbl = dataSet.Tables[0];

                List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();
                foreach (DataRow dr in tbl.Rows)
                {
                    string sSectores = dr["nombre"].ToString();
                    int iSectores = (int)dr["codigo"];
                    
                    values.Add(new CascadingDropDownNameValue(
                      sSectores, iSectores.ToString()));
                }
                return values.ToArray();
            }


    miércoles, 30 de enero de 2013 0:30

Respuestas

Todas las respuestas