0

ページの読み込み時に入力される dataTable があります。そのdataTableでforeachを使用して、クライアント側でテーブルにデータを入力しています。ここで、ユーザーがいくつかの検索条件を入力すると、もう一度データを取得して結果を再表示したいと考えています。

更新パネルの使用を避けたかったのです。
そこで、コード ビハインドで静的メソッドを作成し、ajax 呼び出しから渡されたパラメーターを受け取りながら、データベースから必要な取得を行いました。JavaScript で ajax 呼び出しを作成し、データを渡しました。

ajax は正しいデータで呼び出しを行い、私のデータはデータベースから取得されます。私のdataTable値が設定されています。テーブルを新しいデータで更新する方法がわかりません。

html コードの foreach セクションを再起動する必要があるかのようです。

何か案は?


私のJavaScript関数

$('#btnRunSearch').click(function () {
            $.ajax({
                type: "POST",
                url: "Home.aspx/GetInspectionData",
                data: "{'insp':'00000000-0000-0000-0000-000000000000', 
                       'searchVal':'', 
                       'startDate':'2013-03-01', 
                       'endDate':'2013-04-01', 
                       'agent':'', 
                       'status':0, 'sortexp':''}",
                contentType: "application/json;charset=utf-8",
                dataType: "json",
                success: function (msg) {




                }
            });

        });

私のHTML

<tbody>
   <%
      foreach (System.Data.DataRow dr in dtInspections.Rows)
      {
    %>
      <tr>
        <td>

サーバー側の背後にあるコード

[WebMethod]
    public static bool GetInspectionData(string insp, 
               string searchVal, string startDate, string endDate, 
               string agent, int status, string sortexp)
    {

        // this.SetFiltersToSession();

        int intCurrentCompany = login.GetCurrentlyLoggedInInspectorCompany();


        Guid inspector = new Guid(insp);
        DataSet ds = Bizlogic.cBizLogicBaseClass.GetGenDataAccess().
           GetDataSet("usp_Get_SearchInspections", "Inspections", 
           true, 
           intCurrentCompany, 
           inspector, 
           searchVal, 
           startDate, 
           endDate, 
           agent, 
           status, 
           sortexp);

         //dtInspections is the dataTable that is used to populate the table
        dtInspections = ds.Tables[0];



        return true;


    }
4

2 に答える 2

1

これを行う最も簡単な方法は、テーブルの html を他のすべてのものとは別のビューに配置し、jQuery .load 関数を使用することです。これにより、呼び出されるたびに ajax 呼び出しでテーブルを div にロードできるようになります。

load 関数のドキュメントはこちらにあります。

HTML:

<div id="container"></div>

Javascript:

$('#container').load("Home.aspx/GetInspectionData", 
                     "{'insp':'00000000-0000-0000-0000-000000000000', 
                     'searchVal':'', 
                     'startDate':'2013-03-01', 
                     'endDate':'2013-04-01', 
                     'agent':'', 
                     'status':0, 'sortexp':''}",
                     function() {
    //
    //code for complete function goes here
    //
});

私が十分に説明できなかったり、さらに質問がある場合は、お知らせください。

于 2013-07-09T17:20:20.033 に答える