none
Dropdownlist selectedindexchanged RRS feed

  • Pergunta

  • Pessoal, um bom dia à todos

    Estou com um probleminha no dropdowlist. 

    O evento selectedindexchanged não funciona de jeito nenhum. Coloquei um código simples conforme mostro agora:

            protected void estados_SelectedIndexChanged(object sender, EventArgs e)
            {
                int a = 5;
                int z = (a * 5);
            }

    Tem algo de errado ? 

    Depois que conseguir fazer funcionar, vou implementar uma rotina que irá preencher um segundo dropdownlist de cidades com base no dropdownlist que irá ter a relação dos estados.

    Alguém sabe o que estou fazendo de errado ?

    Abraços.


    quarta-feira, 21 de maio de 2014 07:19

Respostas

  • Oi Junior

    Meu dropdownlist ta assim:

    <asp:DropDownList ID="state" CssClass="formDropdown" runat="server" AutoPostBack="true"  OnSelectedIndexChanged="state_SelectedIndexChanged" EnableTheming="False" EnableViewState="False"> </asp:DropDownList>

    Daniel, este é o nome do seu evento 

    protected void estados_SelectedIndexChanged(object sender, EventArgs e)

    olha acima o nome do evento no aspx


    Jéferson Tavares

    Olá, o Jéfferson está correto. No seu aspx o evento está com um nome e no code behind outro:

    ASPX:

    state_SelectedIndexChanged

    Code behind: 

    estados_SelectedIndexChanged

    A menos que já tenha alterado, o seu problema está aí.


    Diego Cotini do Couto - MCTS .NET Framework 3.5, ASP.NET Applications

    quinta-feira, 22 de maio de 2014 01:29
  • Oi Junior

    Meu dropdownlist ta assim:

    <asp:DropDownList ID="state" CssClass="formDropdown" runat="server" AutoPostBack="true"  OnSelectedIndexChanged="state_SelectedIndexChanged" EnableTheming="False" EnableViewState="False"> </asp:DropDownList>

    Daniel, este é o nome do seu evento 

    protected void estados_SelectedIndexChanged(object sender, EventArgs e)

    olha acima o nome do evento no aspx


    Jéferson Tavares

    quarta-feira, 21 de maio de 2014 16:26
  • Daniel pq vc deixou o enableviewstate = false 

    Esse é o problema já que sem o viewstate ele nao guarda o valor anterior.


    Junior

    quarta-feira, 21 de maio de 2014 16:28
  • Daniel, o nome do teu evento no asp e na classe cs estão iguais?

    Jéferson Tavares

    • Marcado como Resposta Daniel Village sexta-feira, 23 de maio de 2014 17:51
    quarta-feira, 21 de maio de 2014 18:45

Todas as Respostas

  • Mas o que não funciona não entra no evento ? Como está seu aspx e seu código no Page_Load ?
    quarta-feira, 21 de maio de 2014 10:38
  • Daniel no seu aspx o dropdownlist está assim :

    <asp:DropDownList ID="logList" runat="server" AutoPostBack="True" 
            onselectedindexchanged="itemSelected">
        </asp:DropDownList>


    Junior

    quarta-feira, 21 de maio de 2014 11:50
  • Cara eu te aconselho a usar o SelectedValueChanged para fazer esse código dos Combos com Cidades e Estados.

    Tenta fazer por esse evento que falei, e não esquece de mudar o aspx.


    Jéferson Tavares


    quarta-feira, 21 de maio de 2014 11:58
  • Cara bom dia,

    Pode ser simplesmente o AutoPostBack="true"... segue exemplo de um dropdown funcionando:

        <asp:DropDownList id="estados" AutoPostBack="true" OnSelectedIndexChanged="estados_SelectedIndexChanged" runat="server">
           <asp:ListItem Text="São Paulo" Value="SP"></asp:ListItem>
           <asp:ListItem Text="Rio de Janeiro" Value="RJ"></asp:ListItem>
           <asp:ListItem Text="Minas Gerais" Value="MG"></asp:ListItem>
        </asp:DropDownList>

    quarta-feira, 21 de maio de 2014 12:32
  • Ele não entra no código do dropdownlist de jeito nenhum. 

    O Page_Load tem o seguinte código:

    protected void Page_Load(object sender, EventArgs e)
            {
                binds();
            }

    O methodo binds ...

    protected void binds()
            {
                SqlConnection strcon1 = new SqlConnection(mytools.stringconection);
                strcon1.Open();
                string ADDStr = "select estsigla, estdesc from estados order by 1 asc  ";
                SqlCommand ADDCmd = new SqlCommand(ADDStr, strcon1);
                DataTable table = new DataTable();
                SqlDataAdapter adapter = new SqlDataAdapter(ADDCmd);
                adapter.Fill(table);
                state.DataSource = table;
                state.DataValueField = "estsigla";
                state.DataTextField = "estdesc"; 
                state.DataBind();
            }

    Meu codigo aspx:

    <%@ Page Title="" Language="C#" MasterPageFile="~/masterpage.Master"  EnableViewState="false" AutoEventWireup="true" CodeBehind="quarto.aspx.cs" Inherits="quickroom.quartos" %>

    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
        <script src="js/jquery.mask.min.js"></script>
        <script src="js/jquery.maskMoney.min.js"></script>
    <script>
    $(function (load) {
        var currentYear = (new Date).getFullYear();
        var currentnumber;
        $("#price").maskMoney({ prefix: 'R$ ', thousands: '.', decimal: ',', affixesStay: true });
        $("#price2").maskMoney({ prefix: 'R$ ', thousands: '.', decimal: ',', affixesStay: true });
        $("#phone").focusout(function ()
        {
            var phone, element, currentnumber;
            element = $(this);
            phone = element.val().replace(/\D/g, '');
            currentnumber = phone.substring(0, 2);
            if ((currentnumber > 11) && (currentnumber < 20))
                element.mask("(99) 99999-9999");
            else
                element.mask("(99) 9999-9999");
        });
        $("#datepicker").datepicker
        (
            {                    
                dayNames: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'],
                dayNamesMin: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S', 'D'],
                dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb', 'Dom'],
                monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
                monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
                nextText: 'Próximo',
                prevText: 'Anterior',
                yearRange: '2014:2030',
                dateFormat: 'dd/mm/yy',
                changeMonth: true,
                changeYear: true
            }
        );
    });

    </script>


        
    <div>

        <!-- start subheader -->
    <section class="subHeader description">
        <div class="container">
            <h1>Anunciar quarto</h1>
            <form  method="post" action="#" enctype="multipart/form-data"> </form>
        </div><!-- end subheader container -->
    </section><!-- end subheader section -->
    <div id="divwarning"> </div>
    <!-- start my properties list -->
    <section class="properties">
        <div class="container">
            <div class="row">
                <!-- start property info -->
                <div class="col-lg-4 col-md-4">
                    <h3>Informações gerais</h3>
                    <div class="divider"></div>
                    <div class="sidebarWidget submission">
                        <form  method="post" action="#" enctype="multipart/form-data"> </form>
                            <div class="row">
                                <div class="col-lg-12 col-md-12 col-sm-6">
                                    <div class="formBlock">
                                    <label for="state">Título do Anúncio</label>
                                        <input type="text" runat="server" name="title" id="title"/>
                                    </div>
                                </div>

                                <div class="col-lg-12 col-md-12 col-sm-6">
                                    <div class="formBlock">
                                    <label for="description">Detalhes</label><br/>
                                    <textarea name="details" runat="server" id="details" class="formDropdown"></textarea><br/><br/>
                                    </div>
                                </div>

                                <div class="col-lg-12 col-md-12 col-sm-6">
                                    <div class="formBlock">
                                    <label for="image">Foto Principal</label><br/>
                                    <input id="image" accept="image/*"  type="file">
                                    </div>
                                </div>
                                <div class="col-lg-12 col-md-12 col-sm-6">
                                    <div class="formBlock">
                                    <label for="address">Endereço</label>
                                        <br/>
                                    <input type="text" runat="server" name="address" id="address" />
                                    </div>
                                </div>
                                <div class="col-lg-12 col-md-12 col-sm-6">
                                    <div class="formBlock">
                                    <label for="address">Bairro</label>
                                        <br/>
                                    <input type="text" runat="server" name="neiber" id="neiber" />
                                    </div>
                                </div>
                                <div class="col-lg-12 col-md-12 col-sm-6">
                                    <div class="formBlock">
                                        <label for="city">Estado</label><br/>
                                        <asp:DropDownList ID="state" CssClass="formDropdown" runat="server" AutoPostBack="true"  OnSelectedIndexChanged="state_SelectedIndexChanged" EnableTheming="False" EnableViewState="False"> </asp:DropDownList>



                                        
                                    </div>
                                </div>
                                <div class="col-lg-12 col-md-12 col-sm-6">
                                    <div class="formBlock">
                                        <label for="state">Cidade</label>
                                     <select name="citys" runat ="server" id="citys" class="formDropdown">
                                        <option value="Contagem">Contagem</option>

                                     </select> 
                                    </div>
                                </div>
                                <div class="col-lg-12 col-md-12 col-sm-6">
                                    <div class="formBlock">
                                    <label for="state">Telefone</label>
                                    <input type="text" name="phone" id="phone" /></div>
                                </div>
                                <div class="col-lg-12 col-md-12 col-sm-6">
                                    <div class="formBlock">
                                    <label for="state">Dono</label>
                                     <select name="owner" runat ="server" id="owner" class="formDropdown">
                                        <option value="Sim">Sim</option>
                                        <option value="Não">Não</option>
                                     </select> 
                                    </div>                                
                                </div>

                                <div class="col-lg-12 col-md-12 col-sm-6">
                                    <div class="formBlock">
                                    <label for="state">Mora no local</label>
                                     <select name="state" runat="server"  id="live" class="formDropdown">
                                        <option value="Sim">Sim</option>
                                        <option value="Não">Não</option>
                                     </select> 
                                    </div>                                
                                </div>
                                <div style="clear:both;"></div>
                            </div><!-- end row -->
                    </div>
                </div>
                <!-- end property info -->

                
                <div class="col-lg-4 col-lg-offset-4 col-md-4">
                    <div class="formBlock">
                         <asp:Button ID="Button2" runat="server" CssClass="buttonColor" OnClick="Button2_Click" Text="Salvar" />                            
                    </div>
                </div>

            </div><!-- end row -->
        </div><!-- end container -->
    </section>
    <!-- end my properties list -->

            
        </div>
    </asp:Content>

    quarta-feira, 21 de maio de 2014 15:42
  • Oi Junior

    Meu dropdownlist ta assim:

    <asp:DropDownList ID="state" CssClass="formDropdown" runat="server" AutoPostBack="true"  OnSelectedIndexChanged="state_SelectedIndexChanged" EnableTheming="False" EnableViewState="False"> </asp:DropDownList>

    quarta-feira, 21 de maio de 2014 15:44
  • Boa tarde Jeferson

    Nunca trabalhei com essa propriedade. Poderia me dar um exemplo por gentileza ?


    quarta-feira, 21 de maio de 2014 15:45
  • Olá Fabio,

    Eu fiz conforme vc me falou e não deu certo, infelizmente ...

    Estou tentando faz um bom tempo e não estou conseguindo resolver esse problema....

    quarta-feira, 21 de maio de 2014 15:46
  • Junior,

    Esse é o  codigo da pagina .cs e .aspx ... 

    O Page_Load tem o seguinte código:

    protected void Page_Load(object sender, EventArgs e)
            {
                binds();
            }

    O methodo binds ...

    protected void binds()
            {
                SqlConnection strcon1 = new SqlConnection(mytools.stringconection);
                strcon1.Open();
                string ADDStr = "select estsigla, estdesc from estados order by 1 asc  ";
                SqlCommand ADDCmd = new SqlCommand(ADDStr, strcon1);
                DataTable table = new DataTable();
                SqlDataAdapter adapter = new SqlDataAdapter(ADDCmd);
                adapter.Fill(table);
                state.DataSource = table;
                state.DataValueField = "estsigla";
                state.DataTextField = "estdesc"; 
                state.DataBind();
            }

    quarta-feira, 21 de maio de 2014 16:05
  • Boa tarde Jeferson

    Nunca trabalhei com essa propriedade. Poderia me dar um exemplo por gentileza ?


    Daniel, é praticamente igual a que tu está usando, só que se baseia no Value do combo e não no Index dele. É aconselhável quando tu tem três ou mais combos que dependem um do outro, como UF, Cidade e Bairro. 

    Mas a forma de utilizar em si é a mesma.

    Mas de qualquer forma o teu evento teria que funcionar.


    Jéferson Tavares


    quarta-feira, 21 de maio de 2014 16:22
  • Oi Junior

    Meu dropdownlist ta assim:

    <asp:DropDownList ID="state" CssClass="formDropdown" runat="server" AutoPostBack="true"  OnSelectedIndexChanged="state_SelectedIndexChanged" EnableTheming="False" EnableViewState="False"> </asp:DropDownList>

    Daniel, este é o nome do seu evento 

    protected void estados_SelectedIndexChanged(object sender, EventArgs e)

    olha acima o nome do evento no aspx


    Jéferson Tavares

    quarta-feira, 21 de maio de 2014 16:26
  • Daniel pq vc deixou o enableviewstate = false 

    Esse é o problema já que sem o viewstate ele nao guarda o valor anterior.


    Junior

    quarta-feira, 21 de maio de 2014 16:28
  • Junior, 

    Mudei a propriedade e ficou assim agora: 

    <asp:DropDownList ID="state" CssClass="formDropdown" runat="server" AutoPostBack="true"  OnSelectedIndexChanged="state_SelectedIndexChanged" EnableTheming="False" EnableViewState="true"> </asp:DropDownList>

    Será que preciso usar um updatepanel ou algo parecido ? 

    Será que tem algo errado no meu html ? Ta muito estranho viu ...

    Obrigado pela atenção que tem prestado :)

    quarta-feira, 21 de maio de 2014 16:52
  • Daniel, o nome do teu evento no asp e na classe cs estão iguais?

    Jéferson Tavares

    • Marcado como Resposta Daniel Village sexta-feira, 23 de maio de 2014 17:51
    quarta-feira, 21 de maio de 2014 18:45
  • Daniel já testou para verificar se deu certo ?

    Faz o seguinte deixa o dropdownlist do jeito que te mandei no design clica nele e em propriedades dá um duplo clique no evento indexchanged

    Assim vai abrir no codebehind o evento e vc faz o tratamento.

     


    Junior

    quarta-feira, 21 de maio de 2014 19:30
  • Estão iguai sim Jeferson ... tá muito estranho isso viu ...
    quarta-feira, 21 de maio de 2014 20:23
  • Oi Junior

    Meu dropdownlist ta assim:

    <asp:DropDownList ID="state" CssClass="formDropdown" runat="server" AutoPostBack="true"  OnSelectedIndexChanged="state_SelectedIndexChanged" EnableTheming="False" EnableViewState="False"> </asp:DropDownList>

    Daniel, este é o nome do seu evento 

    protected void estados_SelectedIndexChanged(object sender, EventArgs e)

    olha acima o nome do evento no aspx


    Jéferson Tavares

    Olá, o Jéfferson está correto. No seu aspx o evento está com um nome e no code behind outro:

    ASPX:

    state_SelectedIndexChanged

    Code behind: 

    estados_SelectedIndexChanged

    A menos que já tenha alterado, o seu problema está aí.


    Diego Cotini do Couto - MCTS .NET Framework 3.5, ASP.NET Applications

    quinta-feira, 22 de maio de 2014 01:29