ASP.NET:Disparar programaticamente um evento do lado do servidor em window.opener com JavaScript

StackOverflow https://stackoverflow.com/questions/5043866

Pergunta

Eu tenho um DropDownList que dispara alguma ligação de dados do lado do servidor em seu evento OnSelectedIndexChanged.

<asp:DropDownList ID="ddlGroup" runat="server" 
     AutoPostBack="True" OnSelectedIndexChanged="SelectGroup" />

Em outra parte da página, algum JavaScript abre um pop-up.Quando o pop-up for preenchido e enviado, quero usar JavaScript para acioná-lo OnSelectedIndexChanged evento na página de abertura.Encontrei outro código que faz algo semelhante:

    if (window.opener != null ) {
    var cf = window.opener.document.forms['aspnetForm'];
        if (!cf) {
            cf =  window.opener.document.aspnetForm;
        }
        cf.__EVENTTARGET.value = "prAdded";
        cf.__EVENTARGUMENT.value = "winClosed";
        cf.submit(); 
    }

Acho que é isso que estou procurando, mas não tenho certeza do que deve constar nas partes EVENTTARGET e EVENTARGUMENT, ou mesmo se preciso delas.Eu quero disparar especificamente o OnSelectedIndexChanged manipulador de eventos para ddlGroup.Isso é possível/prático?

Pergunta secundária:Posso atualizar a página pai DEPOIS de executar o código do lado do servidor no pop-up?

Foi útil?

Solução

Eh, você poderia fazer dessa maneira, mas eu usaria __doPostback().Isso define __EVENTTARGET e __EVENTARGUMENT para os dois parâmetros e, assumindo que seu primeiro parâmetro seja o UniqueID de um UpdatePanel, faz com que apenas esse UpdatePanel seja atualizado.

Portanto, você pode configurar as coisas para que a atualização do painel de atualização faça o que você deseja que aconteça ou pode verificar esses valores no postback - Request.Form["__EVENTTARGET"] ...e vá de lá.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top