- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试验证两个复选框。为了使表格有效,必须检查其中一项。我想使用 CustomValidator 控件,并在服务器上进行验证。
(此 .ascx 页面是显示在不同 .aspx 页面上的表单。)
首先,我在我的 .ascx 页面上放置了复选框和 CustomValidator 控件。像这样:
<tr>
<td colspan="3">
<input type="checkbox" runat="server" name="EmailCourse" class="" id="EmailCourse" value="" />
Email course
<asp:CustomValidator id="CustomValidator1" runat="server" ErrorMessage="No checkbox checked"
OnServerValidate="validateCheckBoxes_ServerValidate">
</asp:CustomValidator>
</td>
</tr>
<tr>
<td colspan="3">
<input type="checkbox" runat="server" name="SpecialReport" class="" id="SpecialReport" value="" />
Special report
</td>
</tr>
然后,我在 .ascx.cs 页面的代码隐藏中添加了 validateCheckBoxes_ServerValidate 函数,如下所示:
protected void validateCheckBoxes_ServerValidate(object source, ServerValidateEventArgs args)
{
if (!EmailCourse.Checked && !SpecialReport.Checked)
args.IsValid = false;
else
args.IsValid = true;
}
当我尝试在我的本地站点上打开使用此表单的页面以查看它的外观时,出现错误,如下所示:
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS1061: 'ASP.common_controls_specialreportform_ascx' does not contain a definition for 'validateCheckBoxes_ServerValidate' and no extension method 'validateCheckBoxes_ServerValidate' accepting a first argument of type'ASP.common_controls_specialreportform_ascx' could be found (are you missing a using directive or an assembly reference?)
和:
error CS1061: 'ASP.common_controls_specialreportform_ascx' does not contain a definition for 'validateCheckBoxes_ServerValidate' and no extension method 'validateCheckBoxes_ServerValidate' accepting a first argument of type 'ASP.common_controls_specialreportform_ascx' could be found (are you missing a using directive or an assembly reference?)
有谁知道这个错误的原因是什么?我是 asp.net 的新手,遇到了这个问题。
谢谢!
最佳答案
您将 validateCheckBoxes_ServerValidate 放在 *.ascx.cs 中,而它应该在您的 aspx.cs 中。在 ascx.cs 上,您不能像这样引用它在 Parent 上的控件。
将此代码放入您的 aspx.cs 文件:
protected void validateCheckBoxes_ServerValidate(object source, ServerValidateEventArgs args)
{
if (!EmailCourse.Checked && !SpecialReport.Checked)
args.IsValid = false;
else
args.IsValid = true;
}
编辑:
您在 ascx 上的自定义验证器应如下所示:
<asp:CustomValidator id="CustomValidator1" runat="server" ErrorMessage="No checkbox checked" ControlToValidate="EmailCourse" OnServerValidate="validateCheckBoxes_ServerValidate"/>
没有这个ControlToValidate
属性服务器不知道您要验证哪个控件。
编辑2:
你有没有尝试使用更改 <input type="checkbox"/>
至 <asp:CheckBox />
?并告诉我这应该如何在 btn 单击后或复选框选中/取消选中后进行验证?
编辑3:
检查您的 .ascx.designer.cs EmailCourse 中的类型是否正确。
编辑4:
当你有 <asp:CheckBox .../>
在你的 *.ascx
文件你应该在你的ascx.designer.cs
这种类型protected global::System.Web.UI.WebControls.CheckBox EmailCourse
如果这有帮助,请告诉我。
关于asp.net - 验证复选框 asp.net c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11080251/
我是一名优秀的程序员,十分优秀!