在用户控件中执行JavaScript

时间:2014-10-03 21:25:41

标签: javascript c# jquery asp.net ajax

我尝试创建一个ASP.NET用户控件,该控件将根据Feed的URL加载指定的RSS提要。理想情况下,我希望将所有内容保存在用户控件中,以便可以将其放入页面,设置源URL并完成它。我使用jQuery AJAX来保持页面响应更快。这是我开始使用的最基本的骷髅:

在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。我猜它没有得到渲染。

非常感谢任何有助于获得此类或类似工作的帮助。

1 个答案:

答案 0 :(得分:0)

卫生署。在再次浏览之后,我意识到我忽略了一个关键的事情:用户控件上的'runat = server'属性。这就是诀窍。