繁体   English   中英

如何从后面的代码中调用JavaScript以实现Repeater控制

[英]How to call javascript from code behind for Repeater control

有一个span元素需要从Repeater控件动态加载数据。 我遇到的问题是只有第一个span元素才能显示该值。 随后将显示空白。

我简化了下面的代码。

    private int incre = 0;
    protected void Page_Load(object sender, EventArgs e)
    {


        foreach (RepeaterItem ritem in FeaturedRepeater.Items)
        {

            HtmlGenericControl span = ritem.FindControl("countdown") as HtmlGenericControl;
            span.Load += new EventHandler(test);
        }

    }
    protected void test(object sender, EventArgs e)
    {

        HtmlGenericControl span = (HtmlGenericControl)sender;
        Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "timer(" + incre + ")", true);
        incre++;
    }

.aspx文件示例中的Javascript函数如下:

    function timer(increment, timespan) {
       var id = 'ContentPlaceHolder1_FeaturedRepeater_countdown_' + increment;
       document.getElementById(id).innerHTML = id;   
    }

HTML部分:

    <asp:Repeater runat="server" ID="FeaturedRepeater"       OnItemDataBound="FeaturedRepeater_ItemDataBound">
            <ItemTemplate>
                <span id='countdown' runat="server"></span>
            </ItemTemplate>
    </asp:Repeater>
Page.ClientScript.RegisterStartupScript(this.GetType(), string.Format("CallMyFunction{0}", incre), "timer(" + incre + ");", true);

您最多只能注册一次相同的密钥。 这就是将"CallMyFunction"更改为string.Format("CallMyFunction{0}", incre)

顺便说一句

; 在每个javascript函数调用之后。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM