わかりやすくするために、マスター ページ ファイルに基づく次のフォームを考えてみましょう。
フォーム:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Secured_Test" MasterPageFile="~/MasterPages/Test_SiteMaster.master" %>
<asp:Content runat="server" ContentPlaceHolderID="MainPageContent">
<script type="text/javascript">
function ClientValidate(source, args)
{
alert('foo');
}
</script>
<asp:DropDownList runat="server" id="ddl">
<asp:ListItem Text="value 1" Value="1" />
<asp:ListItem Text="value 2" Value="2" />
</asp:DropDownList>
<asp:CustomValidator ID="CustomValidator1" runat="server" Text="Error!" ClientValidationFunction="ClientValidate" />
<asp:Button ID="Button1" runat="server" Text="Submit" CausesValidation="true" />
</asp:Content>
私のマスターページには次のコードが含まれています:
<asp:ScriptManager ID="ToolkitScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Name="jquery" />
</Scripts>
</asp:ScriptManager>
質問/問題:
そのままでは、ClientValidate
関数は起動しません。MasterPageFile で ScriptManager 呼び出しを削除すると、コードは期待どおりに機能します (ClientValidate
が呼び出され、ボタンがクリックされるとアラートが発行されます)。前もって感謝します!