Usuário com melhor resposta
Retornar o conteúdo de uma página para a página chamadora

Pergunta
-
<object height="0" id="ea58cb0b-d8fb-8a88-0a7b-68b9288b8ab9" type="application/gas-events-cef" width="0"></object>
Boa tarde pessoal, alguém pode me auxiliar com essa dúvida...
no site http://www.macoratti.net/07/09/aspn_ujs2.htm tem exatamente o que preciso no entanto não funciona, como estou utilizando masterpager não rola 100% veja o meu código que está na página popup:
string jscript = ""; jscript += "<script language='JavaScript'>"; jscript += ";window.opener.document.ctl00$MainContent$DDLCliente.SelectValue= "; jscript += ukeyempresa.ToString(); jscript += "';window.close();"; jscript += "</script>"; Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Combo", jscript); Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "fechar","<script>self.close();</script>");
Ele fecha a página ok, no entanto o que eu preciso eh que fique selecionado o dropdown com o retorno do javascript na página chamadora, o q está errado ou faltando???
Desde já agradeço,
Abs, Adriano_SP
Respostas
-
tenta forçar um submit no form da pagina 'abridora'
window.opener.document.form[1].submit();
Microsoft Community Contributor
- Marcado como Resposta Adriano_SP terça-feira, 16 de julho de 2013 14:00
Todas as Respostas
-
-
Como ficaria na mesma pagina (tem q ajustar para chamar o metodo em outra pagina)
<form id="form1" runat="server"> <script type="text/javascript"> function SelectByValue(v) { var combo = document.getElementById("comboTeste"); for (var i = 0; i < combo.length; i++) { combo.options[i].selected = (combo.options[i].value == v) } } </script> <select id="comboTeste" name="meuCombo"> <option value="a">aaaa</option> <option value="b">bbbbbb</option> <option value="c">ccccccc</option> </select> <input type="button" name="teste" value="select" onclick="SelectByValue('b');" /> </form>
Microsoft Community Contributor
-
-
Pessoal..... tô quase chegando lá...
string jscript = "";
jscript += "<script language='JavaScript'>";
jscript += ";window.opener.document.getElementById('MainContent_DDLCliente').value = '";
jscript += ukeyempresa;
jscript += "'; self.close();";
jscript += "</script>";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "fechar", jscript);No entanto no meu aspx principal ele seta corretamente o dropdown DDLCliente, mas como faço pra preencher outros dois dropdown que depende do primeiro e ele não faz um refresh e os dois dropdown não funciona corretamente, eis o código :
no evento do:
protected void DDLCliente_TextChanged(object sender, EventArgs e)
dt = dao_cli.EndClienteByUkey(int.Parse(DDLCliente.SelectedItem.Value.ToString()));faço o link com o datasource e databind() etc...
Alguém teria alguma idéia ??
Pois a propriedade do DDLCliente_TextChanged só atualizo quando altero as opções da dropdown.
Desde já agradeço,
Abs, Adriano_SP
-
Oi...
Deixa eu tentar explicar... quando voce coloca uma tag <asp:DropDownListBox runat=server> essa tag é um objeto server side... isso é... voce vai manipular no lado do servidor dentro do seu codigo C#...
quando voce roda a pagina e visualiza o codigo fonte pelo seu browser voce vai ver que no lugar aparece uma tag <select>...</select> no lugar.... que o controle html de lista de seleçao....
o Java script so acessa elemento html puro... e nao os objetos no formato <asp:...>
por isso quando voce faz:
script += ";window.opener.document.ctl00$MainContent$DDLCliente.SelectValue= ";
Não vai acontecer nada, porque para o JavaScript o elemento "ctl00$MainContent$DDLCliente" nao possui uma propriedade "SelectedValue";
Agora se voce continuar o codigo fonte html do seu browser, vai percerber que alem da tag <select>... sao criadas as tags <options>... e sao elas que voce quer acessar...
entao... voce nao tem acesso pelo javascritp a propriedade do c# "SelectedValue".... mas tem acesso a propriedade html "options" que é a lista de options de seu combobox...
Entao o que eu fiz foi dar um exemplo de como selecionar um item de um combo html usado o valor da propriedade "value" dos options... mais ou menos o mesmo que o "SelectedValue" faz...
entao se voce criar o metodo SelectByValue que eu criei acima na sua pagina "opener" voce poderia setar o valor na pagina filho mais ou menos assim:
"window.opener.documento.SelectByValue('" + valor + "');"
Microsoft Community Contributor
-
tenta forçar um submit no form da pagina 'abridora'
window.opener.document.form[1].submit();
Microsoft Community Contributor
- Marcado como Resposta Adriano_SP terça-feira, 16 de julho de 2013 14:00
-