以编程方式更改UpdatePanelAnimationExtender的动画仅适用于第一次回发

时间:2013-12-03 16:57:56

标签: c# asp.net

我正在尝试以编程方式更改现有UpdatePanelAnimationExtender控件的动画。它只在第一次点击Page_Init时更新.Animations方法。

这是我到目前为止所做的。

步骤1.在aspx页面中创建UpdatePanelAnimationExtender(假设您已经创建了UpdatePanel):

        <cc1:UpdatePanelAnimationExtender ID="UpdatePanelAnimationExtender1" runat="server"
    TargetControlID="UpdatePanel1" Enabled="True" >
    <Animations>

                    <OnUpdated>

                    <Sequence>

                        <Parallel duration="0">
                            <ScriptAction Script="alert('test1');" />
                        </Parallel> 

                    </Sequence>

                    </OnUpdated>
    </Animations>
</cc1:UpdatePanelAnimationExtender>

步骤2,从Page_Init(在代码后面),尝试更改警报javascript方法:

protected void Page_Init(object sender, EventArgs e) 
    {

        // Gets a reference to a control inside a ContentPlaceHolder
        ContentPlaceHolder mpContentPlaceHolder;
        mpContentPlaceHolder = (ContentPlaceHolder)Master.FindControl("MainContent");
        if (mpContentPlaceHolder != null)
        {
            UpdatePanelAnimationExtender uae = (UpdatePanelAnimationExtender)mpContentPlaceHolder.FindControl("UpdatePanelAnimationExtender1");

            if (uae != null)
            {

                uae.Enabled = true;

                uae.Animations = "<OnUpdated>" +
                                 "<Sequence>" +
                                 "<Parallel duration=\"0\">" +
                                 "<ScriptAction Script=\"alert('" + DateTime.Now + "');\" />" +
                                 "</Parallel>" +
                                 "</Sequence>" +
                                 "</OnUpdated>";

            }
        }

    }

您会注意到它第一次运行时会更新消息框上的时间,任何后续呼叫都不会更新时间。为什么时间没有更新,如何解决?

先谢谢

1 个答案:

答案 0 :(得分:0)

易。

在客户端呈现的是DateTime.Now的值是什么。它不是动态方法调用,而是一次创建。

尝试调用DateTime.Now的javascript版本。