2012-06-27 66 views
0

我有一个TextBox我用它来存储一个url来应用<asp:HyperLink>控件。当TextBox.Text值为空且用户单击保存时,我想要执行的操作是关闭RequiredFieldValidator。据我所知,我的逻辑是可以的,但验证者并未解雇?验证TextBox值所需的字段验证器问题

这里的标记:

<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> 

这里是检查有效的绝对URL这是我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> 

TryCreate失败时,RequiredFieldValidator不应该被解雇s在一个狡猾的URL和txtImgUrl.Text = ""

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

任何帮助深表感谢

+0

您验证是否正常工作,您能告诉我们按钮的代码 – Adil

+0

更新的问题包括保存方法 – dtsg

+0

我在html中要求保存按钮,因为当txtImgUrl为空时,服务器端的保存触发器不会触发。并且您的网页不会被回传。 – Adil

回答

2

您应该检查按钮点击

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

在ASPX的按钮添加

CausesValidation="true" 
+0

我试着把这个在我的按钮点击事件周围的最后调用更新带有新案例研究的数据库但“Page.IsValid”总是返回“true”。 – dtsg

+0

你可能需要在调用Page.Validate()之前调用它,因为它需要重新检查 –

+0

@Duane,将'CausesValidation = true'放在aspx页面中的按钮 – Habib