Ajaxcontroltoolkit水印扩展定时器眨眼(Ajaxcontroltoolkit wat

2019-10-17 05:47发布

我已经将我已经一个ASP.NET页面

  1. 1个定时器(Tick事件是用于触发更新面板)
  2. 1更新面板
  3. 1个标签(更新面板中)
  4. 1个文本框
  5. 1水印剂(用于文本框)

文本框和watermarkextander是出在UpdatePanel的,也有在页面其他一些对象,但我不会列出这些,计时器不影响他们。 当我在文本框中写的东西是没有问题的,但是当文本框为空,watermarkextender是活跃在计时器滴答水印文字闪烁。

可能是什么问题呢 ?。

在UpdatePanel工作正常,没有其他物体影响了计时器滴答,但不知何故,水印文字闪烁。

能否请你帮我这个问题?

asp.net页面:

    <script type="text/javascript">
    Sys.Application.add_load(function () {
        WebForm_OnSubmit = Sys.Extended.UI.TextBoxWatermarkBehavior._originalWebForm_OnSubmit;
    });
</script>


    <div>
        <ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </ajaxToolkit:ToolkitScriptManager>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

        <ajaxToolkit:TextBoxWatermarkExtender ID="TextBox1_TextBoxWatermarkExtender" 
            runat="server" Enabled="True" TargetControlID="TextBox1" 
            WatermarkText="Some Text">
        </ajaxToolkit:TextBoxWatermarkExtender>

        <asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick">
        </asp:Timer>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        </ContentTemplate>
        <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
        </Triggers>
        </asp:UpdatePanel>

    </div>

代码隐藏:

protected void Timer1_Tick(object sender, EventArgs e)
{
    Label1.Text = DateTime.Now.ToLongTimeString();
}

Answer 1:

这是WatermarkExtender控制的设计特点。 这种行为的原因是为了防止提交水印文字服务器作为目标文本框的值。

您可避免添加下面的脚本 ScriptManager控件,这样的行为:

<script type="text/javascript">
     Sys.Application.add_load(function () 
     {
          WebForm_OnSubmit = Sys.Extended.UI.TextBoxWatermarkBehavior._originalWebForm_OnSubmit;
     });
</script>

虽然被警告,在这种情况下,你需要明确在服务器上忽略水印文本框的值,如果它等于水印文本。



文章来源: Ajaxcontroltoolkit watermark extender timer blink