Hi,
I am using RegularExpressionValidator for validating email id for a particular company. ValidationExpression=\\w+([-+.']\\w+)*@ABCCompany.com working for only first email id, i need to validate more than one email. I found in online ValidationExpression="((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*([;])*)*", its working fine but i have to validate for ABCCompany.com. I tried also CustomValidator server side validation, its working code wise but its not showing error message.
Can you please anybody solve my problem.
My HTML Code:
-------------
<
telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" CellPadding="0" CellSpacing="0" GridLines="None" HorizontalAlign="Left" ShowFooter="true" AllowPaging="true" PageSize="10" AllowMultiRowSelection="true" OnItemCommand="RadGrid1_OnItemCommand" OnNeedDataSource="RadGrid1_OnNeedDataSource" OnInsertCommand="RadGrid1_OnInsertCommand" OnUpdateCommand="RadGrid1_OnUpdateCommand" OnDeleteCommand="RadGrid1_OnDeleteCommand" AllowSorting="true">
<PagerStyle Position="Bottom" AlwaysVisible="true" />
<ValidationSettings EnableValidation="true" ValidationGroup="products" />
<MasterTableView CommandItemDisplay="Top" HorizontalAlign="NotSet" AutoGenerateColumns="False" DataKeyNames="id">
<Columns>
<telerik:GridTemplateColumn DataField="Product_ID" FilterControlAltText="Filter Product_ID column" HeaderText="Product_ID" UniqueName="Product_ID" SortExpression="Product_ID">
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label ID="lblProduct_ID" runat="server" Text='<%# Bind("Product_ID") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn DataField="Product_Email" FilterControlAltText="Filter Product_Email column"
HeaderText="Product Email" UniqueName="Product_Email" SortExpression="Product_Email">
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle HorizontalAlign="Left" />
<ItemTemplate>
<asp:Label ID="lblProduct_Email" runat="server" Text='<%# Bind("Product_Email") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="tbProduct_Email" runat="server" Text='<%# Bind("Product_Email") %>'
Width="500px"></asp:TextBox> (Note: Enter multiple emails with ; separator)
<asp:RequiredFieldValidator ID="rfvtbProduct_Email" runat="server" ControlToValidate="tbProduct_Email"
ErrorMessage="Please enter Product Email" ForeColor="Red" ValidationGroup="products"></asp:RequiredFieldValidator>
<%
--<asp:RegularExpressionValidator ID="revtbProduct_Email" runat="server" ControlToValidate="tbProduct_Email"
ErrorMessage="Enter only valid ABCCompany Emails" ForeColor="Red" ValidationExpression="\\w+([-+.']\\w+)*@ABCCompany.com"
ValidationGroup="products"></asp:RegularExpressionValidator>--%>
<asp:CustomValidator ID="cvtbProduct_Email" runat="server" ControlToValidate="tbProduct_Email"
ForeColor="Red" ErrorMessage="Enter only valid ABCCompany Emails" OnServerValidate="cvtbProduct_Email_OnServerValidate"
ValidationGroup="products" EnableClientScript="false" Display="None"></asp:CustomValidator>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</telerik:GridEditCommandColumn>
<telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Delete" Text="Delete"
UniqueName="DeleteColumn">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</telerik:GridButtonColumn>
</Columns>
<EditFormSettings ColumnNumber="1" CaptionDataField="Product_id" CaptionFormatString="Edit properties of Product ID: {0}" InsertCaption="Product ID:">
</EditFormSettings>
</MasterTableView>
<ClientSettings EnableRowHoverStyle="true">
</ClientSettings>
</telerik:RadGrid>
Severside validation Code:
--------------------------
protected void cvtbProduct_Email_OnServerValidate(object sender, ServerValidateEventArgs args)
{
bool valid;
string[] email = new string[100];
TextBox EmailList = (TextBox)RadGrid1.MasterTableView.GetInsertItem().FindControl("Product_Email");
if (EmailList.Text != "")
{
if (EmailList.Text.Contains(";"))
email = EmailList.Text.Split(';');
else
email[0] = EmailList.Text;
for (int i = 0; i < email.Length; i++)
{
if (email[i] != null)
{
valid = Regex.IsMatch(email[i], "\\w+([-+.']\\w+)*@ABCCompany.com");
if (!valid)
{
args.IsValid = false;
}
else
args.IsValid = true;
}
}
}
}
Thanks,
Swetha.