【发布时间】:2010-11-26 19:11:36
【问题描述】:
我用这个 EditTemplate 在 UpdatePanel 中得到了一个 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访问控件。有什么建议吗?
【问题讨论】:
-
你的页面是否回发?
-
是的,但就像 Jan 已经说过的,控件 ID 存在问题。但是如何以编程方式添加 CustomValidators?
标签: asp.net gridview customvalidator