2014-10-03 74 views
0

我試圖創建一個ASP.NET用戶控件,該控件將根據Feed的URL加載指定的RSS提要。理想情況下,我希望將所有內容都包含在用戶控件中,以便它可以簡單地放入頁面中,設置提要URL並完成它。我使用jQuery AJAX來保持頁面的響應速度。以下是我已經開始與最起碼的骨架:在用戶控件中執行JavaScript

內的ASP.NET Web窗體:

<div> 
    <ResellerViewControls:RssFeedListAjax FeedUrl="http://www.samplelist.com/rss/" /> 
</div> 

用戶控件的內臟:

<%@ Control Language="C#" ClassName="RssFeedListAjax" %> 

<script runat="server"> 
    public string FeedUrl { get; set; } 
</script> 
<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     alert('Loading...'); 
     parseRSS('<%= FeedUrl %>', showResult); 
    })(); 

    function parseRSS(url, callback) { 
     $.ajax({ 
      url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url), 
      dataType: 'json', 
      success: function(data) { 
       if (callback) { 
        callback(data.responseData.feed); 
       } else { 
        throw Error("No callback function provided"); 
       } 
      } 
     }); 
    } 

    function showResult(data) { 
     $('#RssFeedList').innerText = data; 
    } 
</script> 

<div id="RssFeedList"> 
</div> 

Web表單的母版頁有引用所有必要的jQuery的東西。當使用FireFox開發人員工具瀏覽頁面時,我無法在任何地方找到實際的用戶控件的JavaScript。我想它沒有得到渲染。

任何幫助獲得這個或類似的工作是非常感謝。

回答

0

Doh。再次瀏覽一遍後,我意識到我忽略了一個重要的事情:用戶控件上的'runat = server'屬性。那就是訣竅。

+1

還有別的要記住。您可能想使用['ClientScriptManager'](http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.aspx)呈現用戶控件中的JavaScript,而不是嵌入JavaScript在控制中。原因是因爲如果你在一個頁面上有多個用戶控件,那麼javascript會發生衝突。 – Icemanind 2014-10-03 21:35:42

+0

@icemanind這實際上是一個好主意。我去做。謝謝。 – Nate222 2014-10-06 17:34:01

相關問題