私はWebFormsプロジェクトを持っており、データシートのあるページが1つあります。 関連するものは、このように編成されています。
Site.master:Default.aspx.csでWebmethodが呼び出されましたが、JavaScriptの成功/エラー応答が入力されません
<body>
<form runat="server">
<asp:ScriptManager runat="server" EnablePageMethods="true" ID="ScriptManager1">
<Scripts>
<asp:ScriptReference Path="~/Scripts/custom-datatable.js" />
WebMethod属性:
[System.Web.Services.WebMethod]
public static object GetAllCONTEGGI(Nullable<DateTime> dateFrom, Nullable<DateTime> dateTo, Nullable<int> idUtente, Nullable<int> eventType, Nullable<int> logType)
{
...
var result = LogReader.SearchLogEvento(dateFrom, dateTo, idUtente, string_eventType, string_logType);
return result;
}
javascriptのカスタムdatatable.js:
$(document).ready(function() {
...
PageMethods.GetAllCONTEGGI(null, null, null, null, null, SuccessOnLoadingLoadUtentiFunzioni, OnError);
function SuccessOnLoadingLoadUtentiFunzioni(dataset){...}
function OnError(data) { }
}
この方法では、すなわち、すべてのJavaScriptコードを呼び出し、正常に動作します$(ドキュメント).ready(関数(){...私は指摘し
こと、ボタンID = "btnClick" をクリックすると、ページ内の私はとにかく
保護のボイドをPage_Load(オブジェクト送信者、EventArgsの電子) {... Default.aspx.cs
の にブレークポイントを設定すると、PageMethodコールがSuccessOnLoadingLoadUtentiFunzioniに渡される参照として、ポストバックを行います私はDatatableを作成/ロードします。
私はボタンにonclickイベントハンドラを追加するとき<button id="btnClick" onclick="LoadDataTable();" >Cerca log</button>
、 とはdocument.readyにそのイベント内のすべてのJavaScriptコードを挿入し、ではない、ということである何私のために奇妙である、:
LoadDataTable()
{
...
PageMethods.GetAllCONTEGGI(null, null, null, null, null, SuccessOnLoadingLoadUtentiFunzioni, OnError);
function SuccessOnLoadingLoadUtentiFunzioni(dataset){...}
function OnError(data) { }
}
WebMethodが呼び出されます(デバッグ時に表示されます)が、OnSuccess(SuccessOnLoadingLoadUtentiFunzioni)もOnErrorも通過しません。
私の質問は次のとおりです。 1. WebMethodsはポストバックをしないとは思いませんか? (私はdocument.readyに直接ではない機能にJavaScriptコードを挿入したときにケース)は、第2の場合の応答を返すことはないWebMethod属性を引き起こし何 2.
おかげで、これと
うわーに渡すことができます!それは私のすべての問題を魔法のように解決するようです。ポストバックがなく、WebMethodの応答がOnSuccessに渡されます!どうもありがとう ! U befsh 1000 vjec! – bramzoti