تكرار التحكم في ASP.NET Adrotator لطول الصفحة بأكملها

StackOverflow https://stackoverflow.com/questions/2838409

  •  26-09-2019
  •  | 
  •  

سؤال

أقوم بعمل موقع ويب يتطلب تكرار إعلانات على طول الصفحة ذات الطول الديناميكي. أريد عرض الإعلانات أسفل طول الصفحة بالكامل ، لكنني لن أعرف هذا الطول حتى بعد عرض البيانات. هل هناك وظائف في هذا في .NET؟ إذا لم يكن الأمر كذلك ، فهل يرى أي شخص أي حلول يمكنني توظيفها للقيام بذلك من أجلي؟

شكرًا!

هل كانت مفيدة؟

المحلول

أعتقد أنك ستحل هذه المشكلة بشكل أفضل عن طريق الاتصال إلى الخادم (عبر AJAX) للحصول على الإعلانات بعد تقديم الصفحة على متصفح المستخدم النهائي.

يمكنك القيام بذلك عبر العديد من التقنيات (ajax.net و updatepanels ، أو javascript العادية ، أو إطار عمل JS مثل jQuery أو mootools جنبًا إلى جنب مع خدمة ويب لتقديم الإعلانات) ، اعتمادًا على راحتك.

مع خيار JQuery + Ashx ، يمكنك القيام بما يلي:

في 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);
}

في 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());
    }
}

من الواضح أن الخيار الأكثر تكاملًا مع ASP.NET هو خيار UpdatePanel ، على الرغم من أنني أوصي بالانتقال نحو استخدام إطار JS مع .Ashx (معالجات مخصصة) أو .asmx (خدمات الويب) على جانب الخادم. إنه أكثر شفافية ومفهومة ، من حيث معرفة "ما الذي يفعله هذا الرمز؟". يمكن أن يبدو UpdatePanels مثل السحر الأسود.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top