Ajaxcontroltoolkit水印扩展定时器眨眼 [英] Ajaxcontroltoolkit watermark extender timer blink

查看:161
本文介绍了Ajaxcontroltoolkit水印扩展定时器眨眼的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个ASP.NET页面上我已经


  1. 1定时器(Tick事件是触发更新面板)

  2. 1更新面板

  3. 1标签(更新面板)

  4. 1的TextBox

  5. 1水印扩展(对于文本框)

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

这可能是什么问题?

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

您能帮我这个问题?

asp.net页面:

 <脚本类型=文/ JavaScript的>
    Sys.Application.add_load(函数(){
        WebForm_OnSubmit = Sys.Extended.UI.TextBoxWatermarkBehavior._originalWebForm_OnSubmit;
    });
< / SCRIPT>
    < D​​IV>
        < ajaxToolkit:ToolkitScriptManager ID =ToolkitScriptManager1=服务器>
        < / ajaxToolkit:ToolkitScriptManager>
        < ASP:文本框ID =TextBox1的=服务器>< / ASP:文本框>        &所述; ajaxToolkit:TextBoxWatermarkExtender ID =TextBox1_TextBoxWatermarkExtender
            =服务器启用=真的TargetControlID =TextBox1的
            WatermarkText =一些文本>
        < / ajaxToolkit:TextBoxWatermarkExtender>        < ASP:定时器ID =定时器=服务器间隔=1000ontick =Timer1_Tick>
        < / ASP:定时器>
        < ASP:的UpdatePanel ID =UpdatePanel1=服务器>
        <&的ContentTemplate GT;
            < ASP:标签ID =Label1的=服务器文本=标签>< / ASP:标签>
        < /&的ContentTemplate GT;
        <&触发器GT;
        < ASP:AsyncPostBackTrigger控件ID =定时器事件名称=嘀/>
        < /触发器>
        < / ASP:的UpdatePanel>    < / DIV>

codeBehind:

 保护无效Timer1_Tick(对象发件人,EventArgs的发送)
{
    Label1.Text = DateTime.Now.ToLongTimeString();
}


解决方案

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

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

 <脚本类型=文/ JavaScript的>
     Sys.Application.add_load(函数()
     {
          WebForm_OnSubmit = Sys.Extended.UI.TextBoxWatermarkBehavior._originalWebForm_OnSubmit;
     });
< / SCRIPT>

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

I've an ASP.NET page on which I've

  1. 1 Timer (Tick event is trigger for update panel)
  2. 1 Update Panel
  3. 1 Label (in Update Panel)
  4. 1 TextBox
  5. 1 WaterMark extender (for TextBox)

The textbox and watermarkextander are out of the updatepanel, there are some other object in page but I am not listing them, the timer don't affect them. When I write something in textbox there is no problem but when the textbox is empty and the watermarkextender is active on timer tick the watermark text is blinking.

What could be the problem ?.

The updatepanel works fine, no other object is affected on timer tick, but somehow the watermark text is blinking.

Could you please help me about this issue ?

asp.net page:

    <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>

CodeBehind:

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

解决方案

This is by design feature of WatermarkExtender control. The reason of such behavior is to prevent submitting watermark text to server as value of target textbox.

You can avoid such behavior with adding script below AFTER ScriptManager control:

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

Be warned though, that in this case you need explicitly ignore watermarked textboxes values on server if it equals to the watermark text.

这篇关于Ajaxcontroltoolkit水印扩展定时器眨眼的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆