2012-09-11 64 views
1

我已經將我已經Ajaxcontroltoolkit水印擴展定時器眨眼

  1. 1定時器的ASP.NET頁面(Tick事件是觸發更新面板)
  2. 1更新面板
  3. 1標籤(在更新面板)
  4. 1文本框
  5. 1水印劑(用於文本框)

釷e textbox和watermarkextander不在updatepanel中,頁面中有一些其他對象,但我沒有列出它們,定時器不會影響它們。當我在文本框中寫入內容時,沒有任何問題,但是當文本框爲空並且定時器中的水印快照程序處於活動狀態時,水印文本閃爍。

可能是什麼問題?

該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(); 
} 

回答

1

這是WatermarkExtender控制的設計特點。這種行爲的原因是爲了防止向服務器提交水印文本作爲目標文本框的值。

可避免增加以下腳本後 ScriptManager控件,這樣的行爲:

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

即使被警告,在這種情況下,你需要明確忽略服務器水印的文本框的值,如果它等於水印文本。

+0

你是什麼意思?當某個Timer在頁面上滴答時默認閃爍? – adnanturken

+0

是的,它在每次回發時默認閃爍。我已經用可能的解決方案更新了我的答案,以避免眨眼。 –

+0

我已將代碼添加到我的頁面,但仍然閃爍,請注意,計時器上沒有回傳,我有一個標籤,每個計時器都會從數據庫獲取一些值tick我不確定是否會創建一些回傳影響。 – adnanturken