C# 以ASP:DataList中的特定控件为目标
我正试图找到一种方法,使C# 以ASP:DataList中的特定控件为目标,c#,asp.net,.net,C#,Asp.net,.net,我正试图找到一种方法,使asp:RegularExpressionValidor在asp:DataList asp:DataList位于以下代码中: <asp:DataList ID="dlUserInputs" runat="server" DataKeyField="tagname" ItemStyle-CssClass="paddingBottom20" CssClass="layout&quo
asp:RegularExpressionValidor
在asp:DataList
asp:DataList
位于以下代码中:
<asp:DataList ID="dlUserInputs" runat="server" DataKeyField="tagname" ItemStyle-CssClass="paddingBottom20" CssClass="layout">
<ItemTemplate>
<npo:UserInput ID="ctrlUserInput" runat="server" /> // user control
</ItemTemplate>
</asp:DataList>
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="UserInput.ascx.vb" Inherits="web_controls_publication_UserInput" %>
...
<asp:Label ID="lblUserInput" runat="server" Visible="false" />
<asp:TextBox ID="txtUserInput" runat="server" Visible="false" TextMode="MultiLine" Rows="10" Width="100%"/>
<asp:RegularExpressionValidator ID="RegularExpressionValidator" runat="server"
ErrorMessage="<%$ Resources:PageText, LETTER_GOODSANDSERVICESXML_WRONGFORMAT %>" ValidationExpression="^[Cc]lass\s[0-9]{1,2}:\s{1}[^\n]*(?:\r?\n[Cc]lass\s[0-9]{1,2}:\s{1}[^\n]*)*$"
ControlToValidate="txtUserInput"></asp:RegularExpressionValidator>
...
我的问题是RegularExpressionValidor
验证控件txtUserInput
,但是如果我的数据列表调用(比方说)此代码3次,验证程序将应用于3次txtUserInput
事件。我希望它只应用于第一个
提前感谢您的建议是的,这是可以做到的。首先将属性添加到
UserInput.ascx
code-behind。在这种情况下,Validate
public partial class UserInput : System.Web.UI.UserControl
{
public bool Validate { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
}
}
然后将新变量绑定到RegularExpressionValidator的Visible
属性
<asp:RegularExpressionValidator ID="RegularExpressionValidator" Visible='<%# Validate %>'
VB-使用
您将要编写一个自定义验证器--您可能能够利用RegularExpressionValidator这是唯一的解决方案?我的意思是,除了执行服务器端验证功能外,没有别的方法了?您可以创建一个名为Index
的属性,然后将ItemTemplate
中的ItemIndex绑定到UserInput
用户控件的Index属性,然后在UserInput模板中,用If
条件包围regularexpression验证器,该条件检查Index==0
@BYU不确定您的意思——自定义验证器也可以执行客户端验证。
<asp:DataList ID="dlUserInputs" runat="server">
<ItemTemplate>
<npo:UserInput ID="ctrlUserInput" Validate='<%# Container.ItemIndex == 0 %>' />
</ItemTemplate>
</asp:DataList>
Public Partial Class UserInput
Inherits Web.UI.UserControl
Public Property Validate As Boolean
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
End Sub
End Class