我試圖確定爲什麼我的驗證功能沒有在我的Web窗體上被調用。我已閱讀各種文章MSDN,最顯着的發現這塊金塊。在UpdatePanel中使用ClientValidationFunction(JavaScript)
當您使用UpdatePanel控件內CustomValidator控件, 確保驗證控件,並將其與 相關的控制都在同一個小組。有關將UpdatePanel 控件用於部分頁面更新的更多信息,請參閱Partial-Page Rendering概述。
有了這些知識我修改了代碼如下:
<asp:UpdatePanel ID="UpdatePanel0" runat="server">
<ContentTemplate>
<script type="text/javascript">
function IsNotChecked(obj, args) {
args.IsValid = false;
if (document.getElementByID("cbRegion0").checked)
{
args.IsValid = true; return true;
}
return false;
}
</script>
<asp:CheckBox ID="cbRegion0" runat="server" ValidationGroup="0" AutoPostBack="true" OnCheckedChanged="CheckBox_CheckedChanged" />
<asp:CustomValidator ID="CustomValidator0" runat="server" ValidationGroup="0" ClientValidationFunction="IsNotChecked" ErrorMessage="You did not check the box." ValidateEmptyText="True" />
</ContentTemplate>
</asp:UpdatePanel>
我遇到的問題是,當點擊提交我的網頁上按鈕時,驗證程序沒有得到執行。 設計的一些獨特元素是,上面的代碼實際上是通過Control.Add()
添加到頁面的.ascx的內部,但我不明白這會如何影響ClientValidationFunction。我相信這與<script>
在表單中的位置有關,但是儘管在MSDN處指示了方向,但似乎沒有什麼區別。 感謝您的任何想法!
+1爲後續! – Brian