gpt4 book ai didi

asp.net - ASP.net ListView 中的条件必填字段验证

转载 作者:行者123 更新时间:2023-12-01 11:59:40 25 4
gpt4 key购买 nike

我费了好大劲想弄清楚如何在 ListView 中实现验证。目标是要求用户在评论 TextBox 中输入文本,但前提是 CheckBox 被选中。缺点是这些控件位于 ListView 的 EditTemplate 中。以下是 EditTemplate 相关代码部分的片段:

<tr style="background-color: #00CCCC; color: #000000">
<td>
Assume Risk?
<asp:CheckBox ID="chkWaive" runat="server"
Checked='<%# Bind("Waive") %>' />
</td>
<td colspan="5">
<asp:RequiredFieldValidator ID="RequiredFieldValidator1"
runat="server" ErrorMessage="Comments required"
ControlToValidate="txtComments" />
<asp:TextBox Width="95%" ID="txtComments" runat="server"
Text='<%# Eval("Comment") %>'></asp:TextBox>
</td>
<td>
<asp:Button ID="btnSave" runat="server"
Text="Save" CommandName="Update" Width="100px" />
</td>
</tr>

有没有办法使用这种方法进行条件验证?如果没有,有没有一种方法可以在 Listview 的 ItemUpdating 事件或其他地方手动验证,并在失败时通过标签或弹出警报提醒用户错误

最佳答案

您可以使用 CustomValidator

ASPX

<asp:CustomValidator runat="server" id="custPrimeCheck"
ControlToValidate="txtPrimeNumber"
OnServerValidate="PrimeNumberCheck"
ClientValidationFunction="CheckPrime"
ErrorMessage="Invalid Prime Number" />

服务器端验证

Sub PrimeNumberCheck(sender as Object, args as ServerValidateEventArgs)
Dim iPrime as Integer = Cint(args.Value), iLoop as Integer, _
iSqrt as Integer = CInt(Math.Sqrt(iPrime))

For iLoop = 2 to iSqrt
If iPrime mod iLoop = 0 then
args.IsValid = False
Exit Sub
End If
Next

args.IsValid = True
End Sub

客户端验证

<script language="JavaScript">
<!--
function CheckPrime(sender, args)
{
var iPrime = parseInt(args.Value);
var iSqrt = parseInt(Math.sqrt(iPrime));

for (var iLoop=2; iLoop<=iSqrt; iLoop++)
if (iPrime % iLoop == 0)
{
args.IsValid = false;
return;
}

args.IsValid = true;
}
// -->
</script>

样本取自 https://web.archive.org/web/20211020145934/https://www.4guysfromrolla.com/articles/073102-1.aspx

关于asp.net - ASP.net ListView 中的条件必填字段验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2908144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com