ante todo un buen saludos a todos ustedes.
he buscado por la web la forma de como llenar un Dropdownlist de asp.Net con JavaScript a partir de una consulta ejecutada desde SQL Server 2008. yo para esto estoy utilizando el Jquery para poder hacer otras cosas pero no he podido dar en poder llenar el DropDownlist.
a qui dejo la forma como estoy ejecutando la consulta para poder llenar el Dropdownlist.
primero tengo una funcion de JavaScript la que se encarga de ejecutar la funcion de C# el cual es un [WebMethod]
Código:
en la linea PageMethods.GetCargarDropDownlist de la funcion javascript es la que se encarga de ejecuta el [WebMethod] de C# en la pagina asp.netfunction CargarDropDownlist(list) { PageMethods.GetCargarDropDownlist(list.value, OnCargarDropDownlist); }
a qui dejo las funciones que se ejecutan al momento de que javascripr las inicie o las ejecute
este codigo lo hago debajo del Page_Load de la pagina asp.net
Código:
como ven primero se ejecuta esta funcion desde el JavaScript y ahora lo que va hacer esta funcion es llenar la coleccion que tengo llamada Referencias que es la que recibe los registros consultado en la funcion GetReferenciasLista[WebMethod] public static List<GetCargarDropDownlist> GetConsRef(string strCodigo) { try { List<> Referencias; ListDropdownlist srvReflista = new ListDropdownlist(); Referencias = srvReflista.GetReferenciasLista(strCodigo); return Referencias; } catch (Exception) { throw; } }
que es el siguiente codigo.
Código:
una vez recorrido ambas funciones la funcion de javascript llamada OnCargarDropDownlist recibe la lista con los registros necesarios para empezar a cargar el Dropdownlist.public List<GetCargarDropDownlist> GetReferenciasLista(string strCodigo) { objLog = new clsLogicaNegocio(System.Configuration.ConfigurationManager.ConnectionStrings["ConEstring"].ToString()); string strSQL = "SELECT STR_REF_CODIGO, STR_REF_DESCRIPCION FROM TBL_REFERENCIAS WHERE STR_REF_CODIGO = '" + strCodigo + "'"; DataTable dtRef = new DataTable(); dtRef = objLog.Ejecutar_DT(strSQL); List<GetCargarDropDownlist> GerRef = new List<GetCargarDropDownlist>(); try { foreach (DataRow drfila in dtRef.Rows) { if (strCodigo != drfila["STR_REF_CODIGO"].ToString()) { GerRef.Add(new GetCargarDropDownlist(drfila["STR_REF_CODIGO"].ToString(), drfila["STR_REF_DESCRIPCION"].ToString())); } } } catch (Exception) { throw; } return GerRef; }
aqui la funcion que recibe la coleccion llenada
Código:
para poder ver los registros los pinto en una tabla para asegurarme de que si esta devolviendo los registros que son. lo que quiero hacer es que en vez de pintar la tabla pueda cargar el Dropdownlist con estos datos pero no he podido dar con ello de antemano agradezco la ayuda que me puedan ofrecer mil gracias.function OnCargarDropDownlist(resultado) { //debugger; var etiqueta = $get("lblMensaje"); $('#tblGrid tr').next().remove(); for (var x = 0; x < resultado.length; x++) { $('#tblGrid tr:last').after('<tr>' + '<td align="left">' + resultado[x].STR_REF_CODIGO + '</td>' + '<td align="left">' + resultado[x].STR_REF_DESCRIPCION + '</td>' + '<td align="center"><img id="img_' + resultado[x].STR_REF_CODIGO + '" alt="" onclick="EliminarRegistro(this)" style="cursor: pointer;" src="image/delete.png" /></td></tr>'); } $('#tblGrid tr:odd').css('background-color', '#E9F0F8'); }
Dios los bendiga.