<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
</div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="XmlDataSource1">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:TemplateField HeaderText="Validation Test">
<ItemTemplate>
1:<asp:TextBox ID="TextBox1" runat="server"
Visible='<%# Eval("Enter1") %>'></asp:TextBox>
2:<asp:TextBox ID="TextBox2" runat="server"
Visible='<%# Eval("Enter2") %>' ></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" runat="server"
ErrorMessage="CustomValidator" Text="*"
onservervalidate="CustomValidator1_ServerValidate"
ValidateEmptyText="True"></asp:CustomValidator>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID="Button1" runat="server" Text="Submit" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/XMLFile1.xml">
</asp:XmlDataSource>
Partial Public Class _Default : Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, _
ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs)
Dim cv As CustomValidator = CType(source, CustomValidator)
Dim gvr As GridViewRow = cv.NamingContainer
Dim txt1 As TextBox = gvr.FindControl("TextBox1")
Dim txt2 As TextBox = gvr.FindControl("TextBox2")
'If String.IsNullOrEmpty(txt1.Text) Or String.IsNullOrEmpty(txt2.Text) Then
If (txt1.Visible And String.IsNullOrEmpty(txt1.Text)) Or _
(txt2.Visible And String.IsNullOrEmpty(txt2.Text)) Then
cv.ErrorMessage = String.Format("Please enter text on row {0}", gvr.RowIndex)
args.IsValid = False
End If
End Sub
End Class
<?xml version="1.0" encoding="utf-8" ?>
<customers>
<customer Id="1" Enter1="true" Enter2="true"/>
<customer Id="2" Enter1="true" Enter2="false"/>
<customer Id="3" Enter1="false" Enter2="true"/>
<customer Id="4" Enter1="false" Enter2="false"/>
</customers>