2 Stimmen

Übergeben Sie einen Wert und laden Sie die Benutzerkontrolle von Javascript neu

Ich habe ein Benutzer-Steuerelement (weil ich das gleiche in anderen Seite verwenden, so dass ich dachte, ich sollte Code wiederverwenden und nicht meine Arbeit zu verdoppeln), aber in dieser Seite zeige ich eine Liste von Unternehmen und jeder hat eine Unternehmensnummer Ich muss diese Firmennummer an das User Control übergeben und es muss mit der übergebenen Firmennummer neu geladen werden.

Wie kann ich das bewerkstelligen?

was ich bis jetzt habe:

Alt-Text http://www.balexandre.com/temp/2009-09-17_0917.png

die Unternehmensstruktur anzeigen Die Verbindung besteht aus

<a href="javascript:showStruct('112:201334607','5564967221');" 
   class="showStructLink">Show company structure</a>

die showStruct Methode wird wie folgt geschrieben

  function showStruct(pid, cnr) {
     if (_showStrut == 0)
        return;

     // fancy stuff to be more apealing visually
     $("#tdSearch").removeClass("tabTitleUp01").addClass("tabTitleDownUp01");
     $("#tdStruct").removeClass("tabTitleDownUp02").addClass("tabTitleUp02");

     $("#srtr1").hide();
     $("#srtr2").hide();
     $("#sttr1").show();

     // enable Search Results tab to be clicked in order to get back
     $("#tdSearch")
        .addClass("pointer")
        .bind("click", function() { hideStructure(); });

     // pass the company number and reload wcCompanyStruture web user control
     // __doPostBack('RefreshWebUserControl', cnr);
  }

Ich kann eine einfache Aspx-Seite mit dem Steuerelement innerhalb und von jQuery $.get() aufrufen, um auszuführen und füllen Sie das Steuerelement richtig, aber ich möchte wirklich lernen, wie man dies richtig zu tun, mit der ASP.NET AJAX-Methode, um eine Zahl zu senden und RefreshData auf es aufrufen

Mit Code-Behind ist es einfach, das Steuerelement zu aktualisieren, indem man einfach

wcCompanyStruture.RefreshData("companyNumberHere");

was muss ich in meinem User Control Seite und auch in der showStruct Methode tun, um dieses Verhalten zu erstellen?

Für jede Hilfe sind wir dankbar, danke.

5voto

Helo Punkte 964

Ich weiß, dass dies nicht die Antwort auf Ihre Frage ist, aber ich denke, dass Sie vielleicht die falsche Frage stellen.

Für mich sieht es so aus, als ob Sie ein Szenario mit Suchergebnissen und Detailansichten haben, das Sie auf die falsche Weise angehen.

Wenn Sie auf "Unternehmensstruktur anzeigen" klicken, möchten Sie die Details auf der zweiten Registerkarte sehen, richtig? Wenn dies der Fall ist, dann wäre die Registerkarte Ansatz verwirrend für den Benutzer, wäre es besser mit einem modalen Popup, das die Details zeigt. Kein Postback, nur AJAX-Laden einer Seite mit den Details in einem modalen Popup-Fenster.

Dies ist sehr einfach mit JQuery unter Verwendung des Dialog-Widgets in JQueryUI und der AJAX-Ladefunktion $('#SomeDiv').load('details.aspx?id='+companyid);

http://docs.jquery.com/Ajax/load#urldatacallback

Es würde eine viel bessere Benutzererfahrung bieten und ist erstaunlich einfach zu programmieren.

Ich hoffe, das hilft.

0voto

Sam Bauwens Punkte 1227

Sie können eine LinkButton für jeden Link "Unternehmensstruktur anzeigen", und setzen Sie die CommandArgument mit der entsprechenden Unternehmensbezeichnung. Die LinkButton wird einen Postback verursachen.

Eine zweite Lösung wäre die Verwendung einer versteckten Variable: <input type="hidden" id="hiddenCompanyNumber"> und setzen Sie seinen Wert in der showStruct Methode. Sie können dann die Methode __doPostBack() für die Sie ein Steuerelement benötigen, auf das Sie zurückgreifen können, denke ich.

Alles in allem halte ich die erste Lösung für weniger umständlich.

-2voto

Kronass Punkte 5078

Sie finden es hier

http://codeclimber.net.nz/archive/2007/06/26/how-to-refresh-an-updatepanel-from-javascript.aspx

Machen Sie sich keine Gedanken über den Titel des Artikels, er enthält alles, was Sie brauchen. Führen Sie einfach die vier Schritte aus, und Sie können loslegen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X