我有一个GridView在一个UpdatePanel这个EditTemplate:ASP.Net的CustomValidator在GridView控件不激发
<edititemtemplate>
<asp:textbox id="txtDistFrom" runat="server" text='<%# Bind("distFrom") %>' width="30" />
<asp:CustomValidator ID="valDistFrom" ValidateEmptyText="True" OnServerValidate="valDistFromTo_ServerValidate" ControlToValidate="txtDistFrom" Text="Missing" ToolTip="Invalid" Display="Dynamic" runat="server" />
</edititemtemplate>
和一个简单的服务器端功能:
Protected Sub valDistFromTo_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 tbV As UI.WebControls.TextBox = gvr.FindControl("txtDistFrom")
If tbV.Text <> "" Then
args.IsValid = False
cv.ErrorMessage = "inhalt ist " & tbV.Text
End If
End Sub
但调试此代码时服务器端函数不会被触发,无论它做什么。它似乎与gridview有关,所以我不能直接通过它的id访问控件。有什么建议么?
将您的页面回传吗? – Jambobond 2009-09-09 10:51:45
是的,但是像Jan已经指出的那样,控制ID存在问题。但是,如何以编程方式添加CustomValidators? – Ulli 2009-09-09 11:02:21