【发布时间】:2011-06-22 15:45:09
【问题描述】:
我正在尝试将必填字段验证器与 Telerik 的 RadAjaxManager 一起使用。
如果我使用的是按钮,则没有问题,并且当字段为空时不会发生回发。 但是,在某些情况下,我手动调用 ajax 请求,然后不会进行验证,并且无论该字段是否为空,都会进行回发。
下面是一个带有按钮和手动请求的示例:
<script type="text/javascript">
$("#spanSubmit").click(function()
{
$find("<%=RadAjaxManager1.ClientID%>").ajaxRequest();
});
</script>
<asp:TextBox ID="tb1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="req1" runat="server" ControlToValidate="tb1" Text="!!!"></asp:RequiredFieldValidator>
<asp:Button ID="button1" runat="server" onclick="button1_Click" Text="Submit" />
<span id="spanSubmit">Ajax Request</span>
<asp:Label ID="Label1" runat="server"></asp:Label>
<telerik:RadScriptManager ID="ScriptManager1" runat="server"></telerik:RadScriptManager>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="button1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="Label1" />
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="Label1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
在文本框为空时单击 button1 - 不会发生回发。 在文本框为空时单击跨度时 - 回发发生,并且在服务器端 req1.IsValid 为真,除非我手动调用 Page.Validate()。
在执行这样的 ajax 请求时,有没有一种简单的方法来激活验证器?
(我意识到有一些方法可以使用 javascript 调用验证器,例如 example,但由于我可能有多个验证器来自不同的自定义控件,我希望有一种更简单的方法)
【问题讨论】:
标签: asp.net ajax telerik validation