Inquiridor
Desabilitando controle pelo dropdownlist

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
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
-
-
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
-
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>
-
-
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
-
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>