2011-06-29 8 views
5

tengo una página donde al hacer clic en un botón, se ejecuta una función de JavaScript. A continuación, agrega algunos datos y coloca los datos en un campo oculto en esta página. Luego abre una nueva ventana. Esta nueva ventana recoge estos datos agregados, así: -use javascript value y doPostback?

$('#accepted').val(window.opener.$('#accepted').val()); 

caso de ser aceptadas es el campo oculto en tanto ventana padre e hijo (no se usó runat = "server"). El problema ahora es que requiero que estos datos se vinculen con dos cuadrículas. Actualmente he hecho un doPostback en ambas grillas, pero lo que realmente quiero hacer es doPostback para el formulario una vez y manejar el enlace de datos del evento PageLoad. Entonces dos preguntas: -

1) ¿Cómo hago la devolución del formulario?

2) ¿Cómo hago esto sin dejar de diferenciarme del envío del formulario real?

Respuesta

1

Para publicar el formulario solo debe poder agregar una llamada a __doPostback en su javascript, después de establecer el campo aceptado. Puede usar los parámetros EventTarget y EventArgument de __doPostback para controlar el enlace en su grilla.

Por lo tanto, se puede poner esto en sus JS:

__doPostback('rebindGrid', ''); 

y luego esto en su evento de carga de página:

if (Request.Form["__EVENTTARGET"] == "rebindGrid") 
{ 
    //....Do so stuff 
} 
0

Con el fin de atar en forma más directa con el modelo de devolución de datos I envuelva la mina con un poco de C# Método

C# Extensión

public static string GetPostBackLink (this Control c, string argument = "") { 
return c.Page.ClientScript.GetPostBackEventReference(ctl, argument, true) + ";"; 
} 

ASPX

<asp:LinkButton id="lnkDoThis" runat="server" onclick="lnkDoThis_Click" 
     style="display: none;"></asp:LinkButton> 

<asp:HiddenField id="hdnParamHolder" runat="server" /> 

JS

function DoSomething(param) { 
$("[id$='hdnDealTemp']").val(param); 
<%= lnkDoThis.GetPostBackLink() %> 
} 

CodeBehind

protected void lnkDoThis_Click (object sender, EventArgs e) { 
var myParam = hdnParamHolder.Value; 
// Do server actions here 
} 

En cuanto a la apertura de una segunda ventana ... No estoy seguro de entender cuando se desea que esto ocurra ? Si es posterior a la devolución de datos, deberá leer desde el control hdnParamHolder cuando la página se vuelva a cargar.

Cuestiones relacionadas