C# ASP.NET Otwarcie nowego okna przeglądarki po kliknięciu przycisku

21-mar-2013

Niekiedy chcesz aby po kliknięciu przycisku otworzyło się now okno. Możesz w nim pokazać poszerzone informacje o wskazanym rekordzie lub zaprezentować coś zupełnie innego.

Ja używam nowych okienek np.  w celu pokazania PDF, eksportu do skoroszytu Excel itp.

Proponuję taki kod. Po kliknięciu dochodzi do PostBack, który „dokleja” do strony skrypt JavaScript, który się uruchomi podczas ładowania strony. PostBack powoduje, że strona załaduje się na kliencie jeszcze raz, a wtedy uruchomi się kod, który otworzy nowe okno.

public void Page_Load(Object sender, EventArgs e)
{
  // csname1 - nazwa java scriptu który zostanie dołączony do strony
  String csname1 = "PopupScript";
  //cstype1 - typ obiektu (czyli typ twojej strony)
  Type cstype = this.GetType();

  // manager sktyptów
  ClientScriptManager cs = Page.ClientScript;

  // Jeśli taki skrypt nie jest już zarejetrowany, to go dopisz (zarejestruj)
  if (!cs.IsStartupScriptRegistered(cstype, csname1))
  {
      StringBuilder cstext1 = new StringBuilder();
      cstext1.Append("<script type=text/javascript> alert('Hello World!') </");
      cstext1.Append("script>");

      cs.RegisterStartupScript(cstype, csname1, cstext1.ToString());
  }
}

Jeśli to nowe okno powinno znać wartości parametrów z pierwszego okienka zapisz je sobie np w sesji. Wiele takich i podobnych sztuczek odnajdziesz w prezentowanych tuż obok podręcznikach dotyczących programowania w ASP.NET. Skorzystaj z nich jeśli już chociaz trochę programujesz, a potrzebujesz nieco ugruntować i poszerzyć swoją wiedzę. Tutaj znajdziesz wiele szczegółów o których zapewne nawet nie wiedziałeś!

Ten przykład pochodzi z http://msdn.microsoft.com/en-us/library/asz8zsxy(v=vs.100).aspx

Komentarze są wyłączone

Autor: Rafał Kraik