0

我有一个TextBox用于存储应用<asp:HyperLink>控件的 url。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事件中有效绝对 URL 的代码:

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>

当一个狡猾的 URL 失败时不应该RequiredFieldValidator被解雇吗?TryCreatetxtImgUrl.Text = ""

我在这里遗漏了什么明显的东西吗?

任何帮助深表感谢

4

1 回答 1

2

你应该检查按钮点击

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

在 ASPX 中的按钮添加

CausesValidation="true"
于 2012-06-27T09:20:12.373 回答