2014-10-03 4 views
0

Я пытаюсь создать пользовательский элемент управления ASP.NET, который будет загружать указанный канал RSS с учетом URL канала. В идеале я хотел сохранить все, что было обернуто в пользовательском элементе управления, чтобы его можно было просто поместить на страницу, установить URL-адрес фида и сделать с ним. Я использую jQuery AJAX, чтобы страница была более отзывчивой. Вот насущная скелетов я начал с:Выполнение JavaScript внутри пользовательского элемента управления

внутри веб-формы ASP.NET:

<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> 

главная страница веб-формы имеет ссылки все необходимое jQuery. При просмотре страницы с помощью инструментов разработчика FireFox я не могу найти javascript фактического пользовательского элемента управления в любом месте. Наверное, это не получается.

Любая помощь в получении этого или что-то подобное работе очень ценится.

ответ

0

Doh. Просматривая это снова, я понял, что я опускаю критическую вещь: атрибут «runat = server» в пользовательском элементе управления. Это сделал трюк.

+1

Что-то еще нужно иметь в виду. Возможно, вы захотите отобразить javascript в пользовательском элементе управления, используя ['ClientScriptManager'] (http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.aspx) вместо того, чтобы вставлять javascript в контроле. Причина в том, что если на странице имеется более одного пользовательского элемента управления, javascript будет конфликтовать. – Icemanind

+0

@icemanind Это на самом деле хорошая идея. Я сделаю это. Благодарю. – Nate222

Смежные вопросы

 Смежные вопросы