Question

Je fais un site Web qui nécessite des annonces répétées sur la longueur d'une page avec une longueur dynamique. Je veux que les annonces soient affichées sur toute la longueur de la page, mais je ne saurai pas cette longueur avant l'affichage des données. Y a-t-il des fonctionnalités intégrées pour cela dans .NET? Sinon, quelqu'un voit-il des solutions de contournement que je pourrais utiliser pour faire cela pour moi?

Merci!

Était-ce utile?

La solution

Je pense que vous résoudrez le mieux ce problème en rappelant le serveur (via AJAX) pour obtenir les annonces après que la page a été rendue sur le navigateur de l'utilisateur final.

Vous pouvez le faire via plusieurs technologies (ajax.net et UpdatePanels, ordinaire-javascript ou un framework JS comme jQuery ou Mootools ainsi qu'un service Web pour servir les annonces), selon votre confort.

Avec l'option jQuery + Ashx, vous pouvez effectuer ce qui suit:

Dans le javascript:

// when the document has finished loading
$(document).load(function() {

    // make an AJAX request to MyHandler.ashx, with the content's height
    var height = $("#ContentContainer").height()
    $.get("MyHandler.ashx?contentheight=" + height, ResponseCallback);
}

// put the server's response (data) into the ad container
function ResponseCallback(data) {
    $("#AdContainer").html(data);
}

Dans le HTML:

<body>
  <div id="ContentContainer">
     ... 
     ...
  </div>
  <div id="AdContainer"></div>
</body>

MyHandler.ashx:

public void ProcessRequest(HttpContext context) {
    HttpRequest request = context.Request;
    HttpResponse response = context.Response;

    int height = Convert.ToInt32(request.QueryString["contentheight"] ?? "0");

    // do something to calculate number of ads and get the HTML for the ads
    // assuming we have a list of Advert objects:
    List<Advert> ads = GetSomeAds(height);

    foreach(Advert a in ads) {
        response.Write(a.GetHtml());
    }
}

De toute évidence, la plus intégrée à ASP.NET est l'option UpdatePanel, bien que je recommande de vous déplacer vers un framework JS avec .Ashx (Handlers personnalisés) ou .ASMX (Services Web) du côté serveur. Il est beaucoup plus transparent et compréhensible, en termes de connaissance "Que fait ce code?". UpdatePanels peut ressembler à la magie noire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top