如何使用 c# 在 GridView 中动态添加 RangeValidator 的最大值

本文关键字:添加 RangeValidator 最大值 动态 何使用 GridView | 更新日期: 2024-10-30 15:16:30

我有这个范围验证器

    <asp:RangeValidator ID="MarksValidation" runat="server" ErrorMessage="Invalid marks" ValidationGroup="Validation" Type="Integer" ControlToValidate="subject_marks" MinimumValue="-1" MaximumValue='' ></asp:RangeValidator>
<asp:TextBox ID="subject_marks" ControlStyle-CssClass="wide" runat="server" Text='<%# Eval("subject") %>' />

现在我想计算 c# 中的最大分数,然后将其分配给 RangeValidator 的 MaximumValue。我该怎么做?

如何使用 c# 在 GridView 中动态添加 RangeValidator 的最大值

可以使用所需的表达式在代码隐藏中设置 MaximumValue 属性。

MarksValidation.MaximumValue = expression;

例:

MarksValidation.MaximumValue = 50*SomeValue;

根据注释进行编辑,因为验证程序位于 GridView 中

protected void gvUserInfo_RowDataBound(object sender, GridViewRowEventArgs e)
{
   if (e.Row.RowType == DataControlRowType.DataRow)
   {
       RangeValidator rv = (RangeValidator)e.Row.FindControl("MarksValidation");
       rv.MaximumValue = 50*Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "ColumnFromDatabase"));;
   }
}