Frank T 0 Denunciar post Postado Setembro 4, 2011 ola! Sou iniciante em Ajax e estou com dificuldade em adicionar parâmetro extra no WebMethod. Tenho dois dropdownlist em cascata, ambos funcionam normalmente, entretanto preciso colocar um parametro extra no WebMethod, vindo um controle Radio ou outro dropdownlist com as opções de ativo e inativo. Quando o usuário selecionar "ativo", os ddl em cascata só exibem os produtos ativos ou vice versa. segue parte do meu codigo. namespace WebApplication6 { [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [system.ComponentModel.ToolboxItem(false)] [scriptService] public class WebService1 : System.Web.Services.WebService { string conString = ConfigurationManager.ConnectionStrings["skillcontroleConnectionString"].ToString(); [WebMethod] public AjaxControlToolkit.CascadingDropDownNameValue[] GetDropDownFabricante(string knownCategoryValues, string category) { MySqlConnection sqlConn = new MySqlConnection(conString); sqlConn.Open(); MySqlCommand sqlSelect = new MySqlCommand("SELECT DISTINCT tb_produtos.Name_Produto, tb_produtos.idtb_produtos FROM tb_mapa_skill RIGHT OUTER JOIN tb_produtos ON tb_mapa_skill.idtb_produtos = tb_produtos.idtb_produtos WHERE (tb_mapa_skill.status_skill = 'ativo')", sqlConn); sqlSelect.CommandType = CommandType.Text; MySqlDataAdapter sqlAdapter = new MySqlDataAdapter(sqlSelect); DataSet myDataset = new DataSet(); sqlAdapter.Fill(myDataset); sqlConn.Close(); List<AjaxControlToolkit.CascadingDropDownNameValue> cascadingValues = new List<AjaxControlToolkit.CascadingDropDownNameValue>(); foreach (DataRow dRow in myDataset.Tables[0].Rows) { string produtoID = dRow["idtb_produtos"].ToString(); string produtoName = dRow["Name_Produto"].ToString(); cascadingValues.Add(new AjaxControlToolkit.CascadingDropDownNameValue(produtoName, produtoID)); } return cascadingValues.ToArray(); } [WebMethod] public AjaxControlToolkit.CascadingDropDownNameValue[] GetDropDownModelo(string knownCategoryValues, string category) { string categoryID; StringDictionary categoryValues = AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues); categoryID = categoryValues["Name_Produto"]; MySqlConnection sqlConn = new MySqlConnection(conString); sqlConn.Open(); MySqlCommand sqlSelect = new MySqlCommand ("SELECT DISTINCT tb_campanhas.Name_Campanha, tb_campanhas.idtb_Campanhas, tb_mapa_skill.idtb_produtos, tb_mapa_skill.status_skill FROM tb_mapa_skill INNER JOIN tb_campanhas ON tb_mapa_skill.idtb_Campanhas = tb_campanhas.idtb_campanhas WHERE (tb_mapa_skill.idtb_produtos = @name_produto) AND (tb_mapa_skill.status_skill = 'ativo')", sqlConn); sqlSelect.CommandType = CommandType.Text; sqlSelect.Parameters.Add("Name_Produto", MySqlDbType.Int32).Value = categoryID; MySqlDataAdapter sqlAdapter = new MySqlDataAdapter(sqlSelect); DataSet myDataset = new DataSet(); sqlAdapter.Fill(myDataset); sqlConn.Close(); List<AjaxControlToolkit.CascadingDropDownNameValue> cascadingValues = new List<AjaxControlToolkit.CascadingDropDownNameValue>(); foreach (DataRow dRow in myDataset.Tables[0].Rows) { string campanhaID = dRow["idtb_campanhas"].ToString(); string campanhaName = dRow["Name_campanha"].ToString(); cascadingValues.Add(new AjaxControlToolkit.CascadingDropDownNameValue(campanhaName, campanhaID)); } return cascadingValues.ToArray(); } } } Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Setembro 6, 2011 Não seria apenas criar um parâmetro a mais no seu método? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites