1

ここでは、ボタンをクリックしてjavascript関数を呼び出しています。実行が終了したら、javascript関数内のサーバー側メソッドを呼び出す必要があります。

Javascript関数

  function exportCharts(exportFormat) {

            initiateExport = true;
            for (var chartRef in FusionCharts.items) {
                if (FusionCharts.items[chartRef].exportChart) {
                    document.getElementById("linkToExportedFile").innerHTML = "Exporting...";
                    FusionCharts.items[chartRef].exportChart({ "exportFormat": exportFormat });
                }
                else {

                    document.getElementById("linkToExportedFile").innerHTML = "Please wait till the chart completes rendering...";
                }
            }

        }

サーバー側の方法

 protected void imgBTNExportPPT_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
               PredictExportToPPT objOExporttoPPT = new PredictExportToPPT();
               PredictionModel();
                string reportNames = ObjCommon.GetBIReportNames("Prediction", "Report");
                reportNames += ObjCommon.GetBIReportNames("Prediction", "Table");
               objOExporttoPPT.ExportToPPTPredict(ObjPredictInputParameter, reportNames, ObjSharedEntities.PredictTableData);
                string itemname = "PPTOutput.pptx";
                HttpContext.Current.Response.Clear();
                HttpContext.Current.Response.ContentType = "pptx";
                HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + itemname + "");
       HttpContext.Current.Response.BinaryWrite(System.IO.File.ReadAllBytes(HttpContext.Current.Server.MapPath(DataTemplate.PPTOutputTemplateFilePath)));
                HttpContext.Current.Response.Flush();
                HttpContext.Current.Response.End();
               }
            catch (Exception exceptionMessage)
            {
                throw (exceptionMessage);
            }
            finally
            {
                GC.Collect();
            }
        }

そして私はこのように試しました

  $(document).ready(function () {
        $("#imgBTNExportPPT").click(function (e) {
            e.imgBTNExportPPT_Click();
            $.ajax({
                type: "POST",
                url: "PEventPerformance.aspx/updateContent",
                data: "{}",
                success: function (result) {
               }
            });
        });
    });

なにか提案を??

4

3 に答える 3

2

あなたimgBTNExportPPT_Clickはボタンのクリックイベントのように見えます。JavaScriptからイベントを発生させるには、次のことを試してください。

このJavaScriptをaspxページに配置します

<script type="text/javascript">
    function myfunc() {
        <%= Page.ClientScript.GetPostBackEventReference(imgBTNExportPPT, String.Empty) %>;
    }
</script>

OnClientClickに対してこの関数を呼び出します

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="myfunc();" />

これにより、サーバー側のイベントが発生します。

protected void imgBTNExportPPT_Click(object sender, ImageClickEventArgs e)
{

}
于 2012-06-27T10:03:53.150 に答える
0

この目的でAjaxproを使用できます。ボタンクリックなどのイベントなしでサーバー側の呼び出しを生成する場合。

あなたのコードビハインドファイル。Page_Loadセクションの下に追加します

AjaxPro.Utility.RegisterTypeForAjax(typeof(YourCodebehindfilename));

クライアント側

次のようなサーバー側メソッドを呼び出します

var content =  YourCodeBehind.Yourmethod(optional parameters).value;

コンテンツでは、応答をオブジェクトとして取得し、さらに変更を加えることができます

于 2012-06-27T10:12:49.740 に答える
0

サーバーサイドメソッドを実行する最良の方法は、Webサービスを使用することだと思います。

サーバー側のメソッドを含むWebサービスを作成する必要があります。その後、AJAXを使用して呼び出すことができます。

于 2012-06-27T10:50:10.163 に答える