正则表达式验证表达式来自于结构体中另一个项目中定义的常量

本文关键字:项目 定义 常量 另一个 正则表达式 表达式 来自于 结构体 验证 | 更新日期: 2023-09-27 18:12:15

我有一个RepeaterTextBoxRegularExpressionValidator (REV)在每一行。我在aspx中绑定了REVs的validationexpression:

<asp:RegularExpressionValidator ID="regexTeam" ErrorMessage="myerrormessage" 
       ValidationGroup="ValidationGroup1" Display="None" 
       ControlToValidate="txtTeam" runat="server" 
       ValidationExpression='<%# MyNamespace.Constants.RegularExpression.myvalidationexpressionconstant %>'>
</asp:RegularExpressionValidator>

现在我有另一个地方(不在Repeater内)具有相同类型的TextBox和REV.我做同样的:

<asp:RegularExpressionValidator ID="regexStatus" ErrorMessage="myerrormessage" 
        ValidationGroup="ValidationGroup2" Display="None" 
        ControlToValidate="txtStatus" runat="server" 
        ValidationExpression='<%# MyNamespace.Constants.RegularExpression.myvalidationexpressionconstant %>'>
</asp:RegularExpressionValidator>

第二个不工作。它不接受任何输入。在页面源中,没有regexstatus.validationexpressionregexteam.validationexpression按预期存在。什么好主意吗?

PS:常量定义在一个单独的项目中的结构体中。我不能让它成为一个静态类

正则表达式验证表达式来自于结构体中另一个项目中定义的常量

在一个不在Repeater中,没有'bind'动作发生,所以<%#代码没有触发。

如果你想的话,你可以在页面级别调用绑定来触发它,但不确定这样做的副作用是什么,或者你可以使用<%=来代替,它只执行绑定