必需的字段验证程序问题验证TextBox值

时间:2012-06-27 09:04:58

标签: c# asp.net hyperlink uri requiredfieldvalidator

我有一个TextBox,用于存储应用<asp:HyperLink>控件的网址。我想要做的是当RequiredFieldValidator值为空并且用户点击保存时触发TextBox.Text。据我所知,我的逻辑没问题,但验证器没有解雇?

这是标记:

<div class="frmRow">
        <div class="frmControls">  
            <asp:Label ID="lblLink" AssociatedControlID="txtImgUrl" runat="server" Text="Image URL"></asp:Label>
            <asp:RequiredFieldValidator ID="imgUrlValidator" runat="server" ControlToValidate="txtImgUrl" ErrorMessage="Enter a Valid URL"  />
            <asp:TextBox ID="txtImgUrl" runat="server" />  
        </div>
        <div class="clearBoth"></div>
    </div>

以下是检查btnSave事件中有效绝对网址的代码:

Uri url;
if (!string.IsNullOrEmpty(txtImgUrl.Text))
{
    txtImgUrl.Text = Uri.TryCreate(txtImgUrl.Text, UriKind.Absolute, out url) ? url.AbsoluteUri : string.Empty;
}

保存按钮标记:

<br class="clearBoth" />
<asp:Button ID="btnSave" Text="Save Case study" ImageUrl="~/Assets/Design/buttons/btn-update.gif" CssClass="btn fltr" runat="server" OnClick="btnSave_OnClick" />
<div class="clearBoth"></div>

RequiredFieldValidator在狡猾的网址TryCreate上失败时,txtImgUrl.Text = ""不应该被解雇吗?

有什么明显的东西让我在这里失踪吗?

非常感谢任何帮助

1 个答案:

答案 0 :(得分:2)

您应该点击按钮

 if (Page.IsValid) 
         {
            lblOutput.Text = "Required field is filled!";
         }
         else 
         {
            lblOutput.Text = "Required field is empty!";
         }

在按钮中的ASPX中添加

CausesValidation="true"