学习 Web Forms
  • 爱学习公众号

    关注爱学习公众号

  • 扫码手机阅读更方便

推荐阅读
  • 使用 CascadingDropDown 填充列表 (VB)

    AJAX 控件工具包中的 CascadingDropDown 控件扩展了 DropDownList 控件,以便其中一个 DropDownList 中的更改加载另一个 DropDownList 中的关联值。 (例如,一个列表提供美国省/市/自治区列表,然后使用该州的主要城市填充下一个列表。)首先要解决的问题是,使用此控件实际填写下拉列表。

  • 上传文件 (VB)

    了解如何允许用户将二进制文件(如 Word 或 PDF 文档)上载到您的网站,这些文件可能存储在服务器的文件系统或数据库中。

  • 创建支持部署的生成定义

    如果要在 Team Foundation Server (TFS)2010中执行任何类型的生成,则需要在团队项目中创建生成定义。 本主题介绍如何在 TFS 中创建新的生成定义,以及如何在 Team Build 中作为生成过程的一部分来控制 web 部署。

  • 部署代码更新

    本系列教程介绍了如何使用 Visual Studio 2012 或 Visual Studio 2010,将 ASP.NET web 应用程序部署(发布)到 Azure App Service Web 应用或第三方托管提供商。 有关序列的信息,请参阅本系列中的第一个教程。

  • 配置和检测

    ASP.NET 2.0 中的配置和检测发生了重大变化。 新的ASP.NET配置 API 允许以编程方式进行配置更改。 此外,存在许多新的配置设置允许新的配置和检测。

  • 设置 Contact Manager 解决方案

    本主题介绍如何下载和配置 Contact Manager 解决方案,以在开发人员工作站上本地运行。

  • 使用 DataList 和 Repeater 控件显示数据 (C#)

    在前面的教程中,我们使用了 GridView 控件来显示数据。 从本教程开始,我们将介绍如何生成包含 DataList 和 Repeater 控件的常见报表模式,从用这些控件显示数据的基础知识开始。

  • 对 UpdatePanel 控件执行动画处理 (VB)

    ASP.NET AJAX 控件工具包中的动画控件不仅仅是一个控件,而是用于向控件添加动画的整个框架。 对于 UpdatePanel 的内容,存在大量依赖于动画框架的特殊扩展器: UpdatePanelAnimation。 本教程演示如何为 UpdatePanel 设置此类动画。

  • 第 7 部分:添加功能

    Tailspin Spyworks 演示了创建适用于 .NET 平台的功能强大的可缩放应用程序是多么简单。 其中展示了如何使用 ASP.NET 4 中的优秀新功能构建在线商店,包括购物、结帐和管理。 本教程系列详细介绍了生成 Tailspin Spyworks 示例应用程序所需执行的所有步骤。 第7部分添加了其他功能,如帐户查看、产品评论和 "常用项" 和 "还已购

  • ASP.NET 3.5 - 成员身份

    本教程系列介绍使用内置成员资格(安全)系统创建用户帐户和配置授权规则的方法。

通过验证控件使用 TextBoxWatermark (VB)

作者: Christian Wenz

下载代码下载 PDF

AJAX 控件工具包中的 TextBoxWatermark 控件扩展了文本框,以便在框中显示文本。 当用户在框中单击时,它会被清空。 如果用户离开该框而不输入文本,则会重新出现预填充文本。 这可能会与同一页面上的 ASP.NET 验证控件发生冲突,但可能会解决这些问题。

概述

AJAX 控件工具包中的 TextBoxWatermark 控件扩展了文本框,以便在框中显示文本。 当用户在框中单击时,它会被清空。 如果用户离开该框而不输入文本,则会重新出现预填充文本。 这可能会与同一页面上的 ASP.NET 验证控件发生冲突,但可能会解决这些问题。

步骤

示例的基本设置如下所示:使用 TextBoxWatermarkExtender 控件打水印 TextBox 控件。 按钮触发回发,稍后用于触发页面上的验证控件。 此外,还需要 ScriptManager 控件才能初始化 ASP.NET AJAX:

<form id="form1" runat="server">
 <asp:ScriptManager ID="asm" runat="server" />
 <div>
 <asp:TextBox ID="Name" runat="server" /> <br />
 <asp:Button ID="btn" runat="server" Text="Submit" OnClick="btn_Click" /><br />
 <asp:Label ID="lbl" runat="server" />
 </div>
 <ajaxToolkit:TextBoxWatermarkExtender ID="tbwe" runat="server"
 TargetControlID="Name" WatermarkText=" Your Name " />
</form>

现在,添加一个 RequiredFieldValidator 控件,该控件在提交窗体时检查字段中是否有文本。 验证程序的 InitialValue 属性必须设置为 TextBoxWatermarkExtender 控件中使用的相同值:提交窗体时,未更改文本框的值是其中的水印值:

<asp:RequiredFieldValidator ID="rfv1" ControlToValidate="Name"
 Text="*" InitialValue=" Your Name " Display="Dynamic" runat="server" />

但这种方法存在一个问题:如果客户端禁用 JavaScript,则不会使用水印文本预填充文本字段,因此 RequiredFieldValidator 不会触发错误消息。 因此,第二个 RequiredFieldValidator 控件需要检查是否有空的文本框(省略 InitialValue 特性)。

<asp:RequiredFieldValidator ID="rfv2" ControlToValidate="Name"
 Text="*" Display="Dynamic" runat="server" />

由于这两个验证程序使用 Display="Dynamic",因此最终用户无法区分这两个验证程序中触发的可视化外观;相反,它看起来只是其中的一个。

最后,如果没有验证程序发出错误消息,则添加一些服务器端代码以输出字段中的文本:

<script runat="server">
 Protected Sub btn_Click(ByVal sender As Object, ByVal e As System.EventArgs)
 lbl.Text = HttpUtility.HtmlEncode(Name.Text)
 End Sub
</script>

验证器投诉原因在字段中没有文本

验证器投诉原因该字段中没有任何文本(单击查看完全大小的图像

关于我们 免责声明 联系我们
Copyright © 2021 爱学习网 浙ICP备18049359号 网站地图 Google地图