我有一个正在从数据库填充的RadioButtonList,用户至少需要检查/选择一个RadioButtons。我怎样才能确保他们检查/选择RadioButton?我试过很多不同的方法,但没有运气,这是我的代码。我也试图提醒他们取消检查无线电按钮。
我要做的是验证RadioButtonList已被选中/选中。
if (cblstatus.SelectedItem.Value == "1")
{
//Create Category
con.Open();
SqlCommand departament = new SqlCommand("insert into categories(ca_name, ca_number, ca_status, ca_department, ca_date, ca_time, ca_user) " +
"values('" + category.Text + "', '" + number.Text + "', 'Y', '" + catdepartment.SelectedValue + "', '" + date + "', '" + time + "', '" + user + "')", con);
departament.ExecuteNonQuery();
con.Close();
}
else if (cblstatus.SelectedItem.Value == "2")
{
//Create Category
con.Open();
SqlCommand departament = new SqlCommand("insert into categories(ca_name, ca_number, ca_status, ca_department, ca_date, ca_time, ca_user) " +
"values('" + category.Text + "', '" + number.Text + "', 'N', '" + catdepartment.SelectedValue + "', '" + date + "', '" + time + "', '" + user + "')", con);
departament.ExecuteNonQuery();
con.Close();
}
else if (cblstatus. == null)
{
alert.InnerHtml = "<div id=\"warning\" class=\"message warning\">Warning! Please select a department.</div>" +
"<script>" +
"setTimeout(function () { $('#success').fadeOut(); }, 2000);" +
"</script>";
}
答案 0 :(得分:13)
而不是在后面的代码上使用asp.net必填字段验证器:
这是一个例子:
<asp:RadioButtonList runat="server" ID="gender" RepeatDirection="Horizontal" RepeatLayout="Flow" CssClass="labels">
<asp:ListItem Text="Male" Value="Male"></asp:ListItem>
<asp:ListItem Text="Female" Value="Female"></asp:ListItem>
<asp:RequiredFieldValidator runat="server" ID="genderRequired" Display="Dynamic"
ControlToValidate="gender" ErrorMessage="This is an Error"
ValidationGroup="signUp">*</asp:RequiredFieldValidator>
在你后面的代码上你可以创建一个空白div,然后在出错时添加文本,你可以使用jquery change函数进一步操作它:
if (gender.SelectedItem.Value == "Male")
{
//do stuff
}
else if (gender.SelectedItem.Value == "Female")
{
//do stuff
}
else
{
errorDiv.InnerText = "Error Messeage";
}
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.requiredfieldvalidator.aspx
答案 1 :(得分:5)
我们可以使用普通的RequiredFieldValidation而不定义InitialValue属性
<asp:RadioButtonList runat="server" ID="Radioyesno" RepeatDirection="Horizontal">
<asp:ListItem>Yes</asp:ListItem>
<asp:ListItem>No</asp:ListItem>
</asp:RadioButtonList>
<asp:RequiredFieldValidator runat="server" ID="RFV123" ValidationGroup="VG1" ControlToValidate="Radioyes" ErrorMessage="PLEASE SELECT YES/NO"/>
它对我有用,没有复杂的思维
答案 2 :(得分:4)
可以使用这种方法但完全代码
public bool ValidateRadioButtonList()
{
bool rbchecked= false;
for (int i = 0; i < RadioButtonList1.Items.Count - 1; i++)
{
if (RadioButtonList1.Items[i].Selected==true)
{
rbchecked = true;
}
}
if (rbchecked == true)
{
lblError.Text = string.Empty;
return true;
}
else
{
lblError.Text = "Please select RadioButton!";
return false;
}
}
答案 3 :(得分:0)
.aspx:
<asp:RadioButtonList ID="rbAny" runat="server" >
<asp:ListItem Value="rb1" Text="something1"></asp:ListItem>
<asp:ListItem Value="rb2" Text="something2"></asp:ListItem>
<asp:ListItem Value="rb3" Text="something3"></asp:ListItem>
</asp:RadioButtonList>
.aspx.cs:
在ViewState中添加/插入值 (例如,点击按钮):
protected void btnSend_Click(object sender, EventArgs e)
{
foreach (ListItem r in rbAny.Items)
if (r.Selected) ViewState["anyValue"] = r.Text;
}
从ViewState读取值:
protected void btnShow_Click(object sender, EventArgs e)
{
StringBuilder str = new StringBuilder();
str.Append("anyValue: " + ViewState["anyValue"]);
someLabel.Text = str.ToString();
}
答案 4 :(得分:0)
Imports System.IO
Imports System.Text
Imports System
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
'Protected Sub Calendar1_SelectionChanged(sender As Object, e As EventArgs)
' TextBox1.Text = Calendar1.SelectedDate.ToShortDateString()
' Calendar1.Visible = False
'End Sub
'Protected Sub LinkButton1_Click(sender As Object, e As EventArgs)
' 'Calendar1.Visible = True
'End Sub
'Protected Sub LinkButton2_Click(sender As Object, e As EventArgs)
' Calendar2.Visible = True
'End Sub
'Protected Sub Calendar2_SelectionChanged(sender As Object, e As EventArgs)
' TextBox2.Text = Calendar2.SelectedDate.ToShortDateString()
' Calendar2.Visible = False
'End Sub
Public Sub DownloadCSV()
Dim csvPath1 As String = "D:\CSVFile1.csv"
'Download and read all Text within the uploaded Text file.
Dim csvContentStr1 As String = File.ReadAllText(csvPath1)
Dim split As String() = csvContentStr1.Split(","c)
'Here you can see the output as CSV content.
'Response.Write(csvContentStr)
End Sub
Public Sub UploadCSV()
Dim csvContent As New StringBuilder()
DownloadCSV()
Dim dt1 As DateTime = Convert.ToDateTime(TextBox1.Text)
Dim dt2 As DateTime = Convert.ToDateTime(TextBox2.Text)
Dim dt3 As TimeSpan = dt2.Subtract(dt1)
Dim NoOfDays As Integer = dt3.Days + 1
'TextBox3.Text = NoOfDays.ToString
Dim index As DateTime = Convert.ToDateTime(TextBox1.Text)
While index <= Convert.ToDateTime(TextBox2.Text)
If index.DayOfWeek = DayOfWeek.Saturday OrElse index.DayOfWeek = DayOfWeek.Sunday Then
NoOfDays = NoOfDays - 1
End If
index = index.AddDays(1)
End While
Dim a1 As String = TextBox1.ToString()
Dim b1 As String = TextBox2.ToString()
Dim c1 As String = RadioButtonList1.Text.ToString()
Dim d1 As String = TextBox3.ToString()
Dim z1 As String = TextBox1.Text + "," + TextBox2.Text + "," + RadioButtonList1.Text + "," + TextBox3.Text + "," + NoOfDays.ToString
'csvContent.AppendLine("From Date,To Date,Laeve Type,Reason")
csvContent.AppendLine(z1)
Dim csvPath As String = "D:\CSVFile2.csv"
' Save or upload CSV format File (.csv)
File.AppendAllText(csvPath, csvContent.ToString())
End Sub
Protected Sub Button1_Click(sender As Object, e As EventArgs)
If Page.IsValid Then
Dim a1 As String = TextBox1.ToString()
Dim b1 As String = TextBox2.ToString()
Dim c1 As String = RadioButtonList1.Text.ToString()
Dim d1 As String = TextBox3.ToString()
UploadCSV()
DownloadCSV()
End If
End Sub
Protected Sub Button2_Click(sender As Object, e As EventArgs)
End Sub
End Class
Aspx代码
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site1.Master" CodeBehind="WebForm1.aspx.vb" Inherits="Leave12.WebForm1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<table>
<tr>
<%-- <td>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click" >Select From Date.....</asp:LinkButton>
</td>
<td>
<asp:Calendar ID="Calendar1" runat="server" Visible="false" OnSelectionChanged="Calendar1_SelectionChanged" ></asp:Calendar>
</td>
<td>
<asp:TextBox ID="TextBox1" ReadOnly="true" runat="server"></asp:TextBox>
</td>--%>
<td>
<asp:Label ID="Label1" runat="server" Text="Please enter From Date"></asp:Label>
</td>
<td>
<asp:TextBox ID="TextBox1" TextMode="Date" runat="server"></asp:TextBox>
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Please enter From Date" Display="Dynamic" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<%-- <td>
<asp:LinkButton ID="LinkButton2" runat="server" OnClick="LinkButton2_Click">Select To Date.....</asp:LinkButton>
</td>
<td>
<asp:Calendar ID="Calendar2" runat="server" Visible="false" OnSelectionChanged="Calendar2_SelectionChanged" ></asp:Calendar>
</td>
<td>
<asp:TextBox ID="TextBox2" ReadOnly="true" runat="server"></asp:TextBox>
</td>--%>
<%--<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Please enter To Date" Display="Dynamic" ControlToValidate="TextBox2"></asp:RequiredFieldValidator>
</td>--%>
<td>
<asp:Label ID="Label2" runat="server" Text="Please enter To Date"></asp:Label>
</td>
<td>
<asp:TextBox ID="TextBox2" TextMode="Date" runat="server"></asp:TextBox>
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Please enter To Date" Display="Dynamic" ControlToValidate="TextBox2"></asp:RequiredFieldValidator>
</td>
<td>
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="To Date should be greater than From Date" Display="Dynamic" Operator="GreaterThanEqual" ControlToCompare="TextBox1" ControlToValidate="TextBox2"></asp:CompareValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label3" runat="server" Text="Please select Leave Type"></asp:Label>
</td>
<td>
<asp:RadioButtonList RepeatDirection="Horizontal" ID="RadioButtonList1" runat="server" >
<asp:ListItem Selected="True" >Casual Leave</asp:ListItem>
<asp:ListItem>Sick Leave</asp:ListItem>
<asp:ListItem>Earned Leave</asp:ListItem>
</asp:RadioButtonList>
</td>
</tr>
<%--<tr>
<td>
<asp:Label ID="Label2" runat="server" Text="Reason"></asp:Label>
</td>
<td>
<asp:TextBox ID="TextBox3" TextMode="MultiLine" Rows="5" Columns="50" runat="server"></asp:TextBox>
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ErrorMessage="Please select Reason" ControlToValidate="TextBox3" Display="Dynamic"></asp:RequiredFieldValidator>
</td>
</tr>--%>
<tr>
<td>
<asp:Label ID="Label4" runat="server" Text="Reason"></asp:Label>
</td>
<td>
<asp:TextBox ID="TextBox3" TextMode="MultiLine" MaxLength="250" Rows="5" Columns="50" runat="server"></asp:TextBox>
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="Please provide reason for leave" Display="Dynamic" ControlToValidate="TextBox3"></asp:RequiredFieldValidator>
</td>
<td>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ValidationExpression="^[\s\S]{0,100}$" runat="server" ErrorMessage="Please enter maximum of 250 characters" Display="Dynamic" ControlToValidate="TextBox3"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Submit" />
</td>
<td>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Reset" />
</td>
</tr>
</table>
</asp:Content>