我有一个我已经
的ASP.NET页面textbox和watermarkextander不在updatepanel中,页面中还有一些其他对象,但我没有列出它们,计时器不会影响它们。当我在文本框中写东西时没有问题,但是当文本框为空并且水印延长器在计时器上激活时,水印文本会闪烁。
可能是什么问题?
updatepanel工作正常,没有其他对象受到计时器滴答的影响,但不知何故水印文本闪烁。
你能帮我解决这个问题吗?
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>
代码隐藏:
protected void Timer1_Tick(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToLongTimeString();
}
答案 0 :(得分:1)
这是WatermarkExtender控件的设计功能。这种行为的原因是阻止将水印文本作为目标文本框的值提交给服务器。
您可以通过在 AFTER ScriptManager控件下添加脚本来避免此类行为:
<script type="text/javascript">
Sys.Application.add_load(function ()
{
WebForm_OnSubmit = Sys.Extended.UI.TextBoxWatermarkBehavior._originalWebForm_OnSubmit;
});
</script>
请注意,在这种情况下,如果它等于水印文本,则需要在服务器上明确忽略带水印的文本框值。