2011-06-29 17 views
5

Mam stronę, na której po kliknięciu przycisku uruchamiana jest funkcja javascript. Następnie agreguje niektóre dane i umieszcza dane w ukrytym polu na tej stronie. Następnie otwiera nowe okno. To nowe okno podnosi to zagregowane dane w taki sposób: -używać wartości javascript i doPostback?

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

gdzie przyjmowane jest pole ukryte zarówno w oknie Ojciec i dziecko (bez runat = „server” był używany). Problem polega na tym, że potrzebuję tych danych do utworzenia dwóch sieci. Obecnie zrobiłem doPostback na obu sieciach, ale to, co naprawdę chcę zrobić, to zrobićPostback dla formularza raz i obsługiwać databinding zdarzenia PageLoad. Tak więc dwa pytania: -

1) Jak mogę wysłać formularz?

2) W jaki sposób mogę to zrobić, zachowując możliwość odróżnienia się od faktycznego podania formularza?

Odpowiedz

1

Aby opublikować formularz, powinieneś być w stanie dodać wywołanie __doPostback w javascript, po ustawieniu zaakceptowanego pola. Można użyć parametrów EventTarget i EventArgument parametru __doPostback, aby kontrolować powiązanie w siatce.

Więc, można umieścić to w swoim JS:

__doPostback('rebindGrid', ''); 

a potem to w przypadku ładowania strony:

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

Aby związać go w bardziej bezpośrednio z modelu ogłaszania I owinąć kopalnię z jakimś C# Metoda

C# Extension

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() %> 
} 

kodzie

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

chodzi o otwór w drugim oknie ... Nie jestem pewien, śledzę, gdy chcesz to się stało ? Jeśli jest po odświeżeniu, musisz przeczytać z kontrolki hdnParamHolder, gdy strona się załaduje.

Powiązane problemy