2014-10-03 2 views
0

피드의 URL이 지정된 경우 지정된 RSS 피드를로드하는 ASP.NET 사용자 정의 컨트롤을 만들려고합니다. 이상적으로는 모든 것을 사용자 정의 컨트롤에 그대로 두어 간단히 페이지에 넣고, 피드 URL을 설정하고, 처리 할 수 ​​있도록하고 싶었습니다. jQuery AJAX를 사용하여 페이지를보다 신속하게 응답합니다.사용자 정의 컨트롤 내에서 JavaScript 실행

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

웹 폼의 마스터 페이지에 대한 참조가있는 ASP.NET 웹 폼 내부

: 여기 시작했습니다 해골의 barest입니다 필요한 모든 jQuery 물건. FireFox 개발자 도구를 사용하여 페이지를 탐색 할 때 어디에서나 실제 사용자 정의 컨트롤의 javascript를 찾을 수 없습니다. 나는 그것이 렌더링되지 않을 것 같아요.

이 문제를 해결하는 데 도움이 필요하시면 크게 감사드립니다.

답변

0

도. 다시 살펴본 후 사용자 컨트롤의 'runat = server'속성을 생략한다는 사실을 깨달았습니다. 그것은 트릭을했다.

+1

명심해야 할 것이 있습니다. 자바 스크립트를 임베딩하는 대신 ['ClientScriptManager'] (http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.aspx)를 사용하여 사용자 컨트롤에있는 자바 스크립트를 렌더링 할 수 있습니다. 컨트롤에. 이유는 페이지에 둘 이상의 사용자 정의 컨트롤이있는 경우 자바 스크립트가 충돌하기 때문입니다. – Icemanind

+0

@icemanind 그건 실제로 좋은 생각입니다. 나는 그렇게 할 것이다. 감사. – Nate222

관련 문제