I have a scenario,
where user has to select any one role from radiobuttonlist to register himself
as below
-
Administrator
-
Shop floor User
-
Key User
-
Others
If he selects Role
"Others" from radio-button list, a text box will be appeared to enter the role
manually. Can I have a RequiredFieldValidator for text-box if only user selects
role "Others" else if he selects other roles validation is not required.
<%@
Page Language="C#"
AutoEventWireup="true"
CodeBehind="Default.aspx.cs"
Inherits="Required_Field_Validator_based._Default"
%>
<!DOCTYPE
html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
>
<head
runat="server">
<title>Untitled
Page</title>
</head>
<body>
<form
id="form1"
runat="server">
<div>
<table
align="center">
<tr>
<td
colspan="2">
<h3>
Registration Form</h3>
</td>
</tr>
<tr>
<td>
Name:</td>
<td>
<asp:TextBox
ID="txtName"
runat="server"></asp:TextBox>
</td>
<td><asp:RequiredFieldValidator
ID="RequiredFieldValidator2"
runat="server"
ErrorMessage="Enter
Name" ControlToValidate="txtName"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
Email</td>
<td>
<asp:TextBox
ID="txtEmail"
runat="server"></asp:TextBox>
</td>
<td><asp:RequiredFieldValidator
ID="RequiredFieldValidator3"
runat="server"
ErrorMessage="Enter
Email" ControlToValidate="txtEmail"></asp:RequiredFieldValidator>
</td>
<td>
<asp:RegularExpressionValidator
ID="RegularExpressionValidator1"
runat="server"
ErrorMessage="Invaid
Email" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
ControlToValidate="txtEmail"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td>
Role</td>
<td>
<asp:RadioButtonList
ID="rbtRole"
runat="server"
RepeatDirection="Vertical"
AutoPostBack="True"
onselectedindexchanged="rbtRole_SelectedIndexChanged">
<asp:ListItem>Administrator</asp:ListItem>
<asp:ListItem>Shop
floor User</asp:ListItem>
<asp:ListItem>Key
User</asp:ListItem>
<asp:ListItem>Others</asp:ListItem>
</asp:RadioButtonList>
</td>
<td><asp:RequiredFieldValidator
ID="RequiredFieldValidator4"
runat="server"
ErrorMessage="Select
role" ControlToValidate="rbtRole"></asp:RequiredFieldValidator>
</td>
</tr>
<asp:Panel
ID="panell"
runat="server"
Visible="false">
<tr>
<td></td><td><asp:TextBox
ID="TextBox1"
runat="server"></asp:TextBox></td>
<td><asp:RequiredFieldValidator
ID="RequiredFieldValidator1"
runat="server"
ErrorMessage="Enter
role" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>
</td>
</tr>
</asp:Panel>
<tr>
<td
align="center"
colspan="2">
<asp:Button
ID="btn_register"
runat="server"
Text="Register"
onclick="btn_register_Click"
/>
</td>
</tr>
<tr>
<td
align="center"
colspan="2">
<asp:Label
ID="lblmsg"
runat="server"></asp:Label>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
using System;
using
System.Collections;
using
System.Configuration;
using
System.Data;
using
System.Linq;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.HtmlControls;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Xml.Linq;
using
System.Data.SqlClient;
namespace
Required_Field_Validator_based
{
public partial
class _Default
: System.Web.UI.Page
{
string strConnString =
ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlCommand com;
protected void
btn_register_Click(object sender, EventArgs e)
{
if (rbtRole.Text ==
"Others")
{
SqlConnection con =
new SqlConnection(strConnString);
com = new
SqlCommand();
com.Connection = con;
com.CommandType = CommandType.Text;
com.CommandText = "insert into login
values(@Name,@Email,@role)";
com.Parameters.Clear();
com.Parameters.AddWithValue("@Name",
txtName.Text);
com.Parameters.AddWithValue("@Email",
txtEmail.Text);
com.Parameters.AddWithValue("@role",
TextBox1.Text);
if (con.State ==
ConnectionState.Closed)
con.Open();
com.ExecuteNonQuery();
con.Close();
lblmsg.Text = "Data entered
successfully!!!";
clear();
}
else
{
SqlConnection con =
new SqlConnection(strConnString);
com = new
SqlCommand();
com.Connection = con;
com.CommandType = CommandType.Text;
com.CommandText = "insert into login
values(@Name,@Email,@role)";
com.Parameters.Clear();
com.Parameters.AddWithValue("@Name",
txtName.Text);
com.Parameters.AddWithValue("@Email",
txtEmail.Text);
com.Parameters.AddWithValue("@role",
rbtRole.SelectedValue);
if (con.State ==
ConnectionState.Closed)
con.Open();
com.ExecuteNonQuery();
con.Close();
lblmsg.Text = "Data entered
successfully!!!";
clear();
}
}
protected void
rbtRole_SelectedIndexChanged(object sender,
EventArgs e)
{
lblmsg.Text = "";
if (rbtRole.SelectedValue ==
"Others")
{
panell.Visible = true;
TextBox1.CausesValidation = true;
}
else
{
panell.Visible = false;
TextBox1.CausesValidation = false;
}
}
private void
clear()
{
TextBox1.Text = "";
txtEmail.Text = "";
txtName.Text = "";
rbtRole.ClearSelection();
}
}
}