user1181942
user1181942

Reputation: 1607

Required field validator for User control not working

Hi I have created user control for re-sizable text box.

<asp:Panel ID="PanelText" runat="server" CssClass="frameText">
<asp:TextBox runat="server" ID="TextBoxResizable" CssClass="noborder" Width="100%"
    Height="100%" TextMode="MultiLine">
</asp:TextBox>
</asp:Panel>
<cc1:ResizableControlExtender ID="ResizableTextBoxExtender" runat="server" TargetControlID="PanelText"
ResizableCssClass="resizingText" HandleCssClass="handleText" OnClientResizing="OnClientResizeText" />

And have created Validator property for this control like:

[ValidationProperty("Text")]
 public partial class ResizableTextBoxControl : System.Web.UI.UserControl
{ public string Validator
{
    get { return this.TextBoxResizable.Text; }
} 
protected void Page_Load(object sender, EventArgs e)
 {

 }
}

In aspx page I am using this control like:

<uc1:ResizableTextBoxControl ID="tbDescription" MinimumHeight="50" MinimumWidth="100"
 MaximumHeight="300" MaximumWidth="400" runat="server" onKeyPress="javascript:Count(this,1500);" onKeyUp="javascript:Count(this,1500);" ValidationGroup="vgSubmit" ></uc1:ResizableTextBoxControl>

 <asp:RequiredFieldValidator ID="rfvDescription" runat="server" controlToValidate="tbDescription" ValidationGroup="vgSubmit" ErrorMessage="Description" Text="*" ForeColor="Red" SetFocusOnError="True"></asp:RequiredFieldValidator>

When I click on submit, "tbDescription" does not appear to be mandatory. What can be wrong with the code?

EDIT

Ok...I got what was the problem, one control was hidden, and required field validator for that control was not disabled, I did it using jquery and now everything is fine except asterics.. I dont understand why asterics are not visible..

Upvotes: 1

Views: 6196

Answers (3)

user1181942
user1181942

Reputation: 1607

Sorry for all the trouble,

There was one control on page which was hidden and required field validator for that control was not disabled. I disabled it using jQuery like

$(document).ready(function () {
    if (!$("#<%=TextBoxResizable.ClientID %>").is(":visible")) {
        ValidatorEnable(<%=rfvTextBoxResizable.ClientID %>, false);
    }
})

Asteric is visible after placing required field validator outside Panel.

Upvotes: 0

Ashwini Verma
Ashwini Verma

Reputation: 7525

try using Page.IsValid in your Submit button event.

if (!Page.IsValid) {
  return;
}

Upvotes: 0

COLD TOLD
COLD TOLD

Reputation: 13599

try placing your validator to your controlle especially if you just try to validate one textbox

   <asp:Panel ID="PanelText" runat="server" CssClass="frameText">
<asp:TextBox runat="server" ID="TextBoxResizable" CssClass="noborder" Width="100%"
    Height="100%" TextMode="MultiLine">

    </asp:TextBox>
     <asp:RequiredFieldValidator 
ID="rfvDescription" runat="server" controlToValidate="TextBoxResizable"
 ValidationGroup="vgSubmit" 
ErrorMessage="Description" Text="*" 
ForeColor="Red" SetFocusOnError="True">

</asp:RequiredFieldValidator
    </asp:Panel>
    <cc1:ResizableControlExtender ID="ResizableTextBoxExtender"
 runat="server" TargetControlID="PanelText"

    ResizableCssClass="resizingText" HandleCssClass="handleText OnClientResizing="OnClientResizeText" />

in to the user controller it might not be recognized after the page is rendered.

Upvotes: 1

Related Questions