none
Desabilitando controle pelo dropdownlist RRS feed

  • Pergunta

  • Eu tenho o seguinte controle DropDownListCODMAT que tem o seguinte codigo abaixo:

    protectedvoidDropDownListCODCLASSEP_SelectedIndexChanged(objectsender,EventArgse)

            {

               

    string_connectionString =WebConfigurationManager.ConnectionStrings["CONNECTIONSTRING"].ConnectionString;

               

    TextBoxDESCCLASSEPTextBox = (TextBox)FormView1.FindControl("DESCCLASSEPTextBox");

               

    DropDownListDropDownListCODCLASSEP = (DropDownList)FormView1.FindControl("DropDownListCODCLASSEP");

               

    string_strSQL03 ="SELECT * FROM CLASSEPTUBULACAO WHERE CODIGO = '"+ DropDownListCODCLASSEP.Text + "'";

               

    SqlConnectioncon03 =newSqlConnection(_connectionString);

               

    SqlCommandcmd03 =newSqlCommand(_strSQL03, con03);

                cmd03.CommandType =

    CommandType.Text;

               

    using(con03)

                {

                    con03.Open();

                  

    SqlDataReaderdr03 = cmd03.ExecuteReader();

                  

    if(dr03.Read())

                    {

                        DESCCLASSEPTextBox.Text = (

    string)dr03["DESCRICAO"];

                    }

                  

    else


                    {

                        DESCCLASSEPTextBox.Text =

    "";

                    }

                    dr03.Close();

                    con03.Close();

                }

            }

    Quando eu escolho qualquer opção desse controle ele desabilita meu outro controle abaixo:

    <

    asp:DropDownListID="DropDownListCODMAT"runat="server"Enabled="false"


               

    ForeColor="#3366CC"Width="134px"Font-Size="9pt"DataTextField="CODIGO"

               

    DataValueField="CODIGO"DataSourceID="SqlDataSourceCODMAT"SelectedValue='<%#Bind("CODMAT") %>'    

               

    onselectedindexchanged="DropDownListCODMAT_SelectedIndexChanged"

               

    AutoPostBack="true"ondatabound="DropDownListCODMAT_DataBound">


               

    </asp:DropDownList>


               

    <asp:SqlDataSourceID="SqlDataSourceCODMAT"runat="server"

               

    ConnectionString="<%$ConnectionStrings:connectionString %>"

               

    SelectCommand="SELECT [CODIGO] FROM [MATERIALTUBULACAO] ORDER BY [CODIGO]">


               

    </asp:SqlDataSource>

    Alguem sabe como eu resolvo esse problema ?

    Eu ja fiz passso a passo para ver se ele passa por outro controle e na verdade ele so passa mesmo pelo codigo que coloquei acima e desabilita no final do codigo o controle acima. Eu não entendi. Alguem pode me ajudar ?

    Fico no aguardo.

    Muito Obrigado

    terça-feira, 7 de maio de 2013 16:43

Todas as Respostas

  • Pr_Tecnologia,

    Desculpa não entendi muito bem sua pergunta, você quer dizer que quando você chama o evento SelectedIndexChanged do seu DropDownList chamado DropDownListCODCLASSEP o seu outro DropDownList desaparece da tela, ou apenas os dados não são retornados.

    Abraço,

    Leandro Rodrigues


    Caso a resposta tenha ajudado, não esqueça de marcar como resposta válida

    terça-feira, 7 de maio de 2013 17:20
  • Quando eu chamo o evento SelectedIndexChanged do meu dropdownlistCODCLASSEP ele desabilita o meu outro dropdownlistCODMAT.

    Entendeu agora ?

    Obs: No meu Page_load não tem nada.

    Se alguem puder me ajudar eu agradeço.

    Obrigado.

    terça-feira, 7 de maio de 2013 17:36
  • Pr_Tecnologia,

    Não faz sentido isso acontecer em algum lugar do seu código isso esta ocorrendo porém pelo código que você coloco aqui não da para identificar, observe o seu objeto FormView1 sua DropDownList esta dentro dele, acredito que você realiza o PostBack você esta perdendo,porque entra de algum evento e desabilita.

    Da uma olhada nesse objeto, ve se tem eventos para ele e veja o que esses eventos fazem.

    Abraços,

    Leandro Rodrigues


    Caso a resposta tenha ajudado, não esqueça de marcar como resposta válida

    terça-feira, 7 de maio de 2013 18:23
  • Eu tenho dentro do meu FormView1 um evento em javascript que habilita e desabilita esse controle.

    O codigo esta logo abaixo na pagina.aspx

    <

    scripttype="text/javascript">


                    

    functiondesabilita() {

                        

    varresult = confirm("Material fora da Especificação, você quer cadastrar ?");

                        

    if(result)

                         {

                             document.getElementById(

    'MainContent_FormView1_DropDownListCODMAT').disabled = false;

                             document.getElementById(

    'MainContent_FormView1_DropDownListCODSCH').disabled = false;

                             document.getElementById(

    'MainContent_FormView1_DropDownListCODCLASSEP').disabled = false;

                            

                         }

                        

    else

                         {

                             document.getElementById(

    'MainContent_FormView1_DropDownListCODMAT').disabled = true;

                             document.getElementById(

    'MainContent_FormView1_DropDownListCODSCH').disabled = true;

                             document.getElementById(

    'MainContent_FormView1_DropDownListCODCLASSEP').disabled = true;

                         }

                     }

                

    </script>

    terça-feira, 7 de maio de 2013 18:28
  • Eu ja rodei passo a passo e o evento do meu dropdownlistCODCLASSEP não passa pelo javascrip quando seleciono.

    Por isso não estou entendendo.

    Se alguem puder me ajudar.

    Eu agradeço muito.

    Obrigado.

    terça-feira, 7 de maio de 2013 18:32
  • Pr_Tecnologia,

    Toda vez que você seta algum valor no seu DropDownList então como evento AutoPostBack da sua página é chamado, logo a página é carregada, que carrega o seu FormView1 novamente, e quando entra no método confirm esta sempre retornando true.    

    Procura agora para a gente o método quando o método desabilita é chamado, porque ele é chamado.

    Abraços,

    Leandro Rodrigues 


    Caso a resposta tenha ajudado, não esqueça de marcar como resposta válida

    terça-feira, 7 de maio de 2013 18:40
  • Eu analisei aqui meu codigo inteiro.

    E o javascript não tem nada a ver com o fato de estar desabilitando o meu controle mesmo que tenha essa função nele.

    O fato é que pelo fato do meu controle estar por padrão desabilitado, quando clico no evento SelectIndex ele volta o controle para o padrão enable="false" conforme abaixo:

    So que eu não posso alterar esse controle para true pois ele so sera habilitado mediante uma condição.

    <

    asp:DropDownListID="DropDownListCODCLASSEP"runat="server"Enabled="false"


               

    ForeColor="#3366CC"Width="80px"Font-Size="9pt"DataTextField="CODIGO"

               

    DataValueField="CODIGO"DataSourceID="SqlDataSourceCODCLASSEP"SelectedValue='<%#Bind("CODCLASSEP") %>'     

               

    onselectedindexchanged="DropDownListCODCLASSEP_SelectedIndexChanged"

               

    AutoPostBack="true"ondatabound="DropDownListCODCLASSEP_DataBound">


               

    </asp:DropDownList>

    terça-feira, 7 de maio de 2013 19:05