如何从代码中调用javascript来实现Repeater控件

时间:2014-09-18 09:18:05

标签: javascript asp.net

有一个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>

1 个答案:

答案 0 :(得分:0)

Page.ClientScript.RegisterStartupScript(this.GetType(), string.Format("CallMyFunction{0}", incre), "timer(" + incre + ");", true);

您不能再多次注册相同的密钥。 这就是为什么将"CallMyFunction"更改为string.Format("CallMyFunction{0}", incre)将起作用

顺便说一句

每次javascript函数调用后

;