Ajaxはデータを動的にロードすることを実現する。


前言:
1.このエッセイはAjaxのダイナミックロードの例を実現しました。
2.netのMVCフレームを使って実現します。
3.この例の重点は前のバックグラウンドで対話し、他の略書き。
開始:
1.コントローラアクションResoultコード(ページを表示するため)

    /// <summary>
    ///       
    /// </summary>
    /// <returns></returns>
    public ActionResult PhoneSearch(string sql)
    {
      phoneList=        ;
      ViewBag.phoneList = phoneList;
      return View();
    }

2.フロントページの主要コード
説明:これはデータを示す表です。中のフィールドはあなたの作ったモデルと一致します。

<table border="1" cellspacing="0" cellpadding="0" class="toLang" id="phoneTable">
              <tr>
                <th>  </th>
                <th>  </th>
                <th>  </th>
                <th>  </th>
                <th>  </th>
                <th>  </th>
                <th>  </th>
              </tr>
              <tbody id="todeListTBODY">
                @if (ViewBag.phoneList != null)
              {
                foreach (var item in ViewBag.phoneList)
                {
                  number = number + 1;
              <tr>
                <td>@number</td>
                <td>@item.Conpany</td>
                <td>@item.Department</td>
                <td>@item.Team</td>
                 <td>@item.Name</td>
                 <td>@item.Position</td>
                 <td>@item.PhoneNumber</td>
                  </tr>
                }
              }
              </tbody>
            </table>
3.私の照会条件

 <div style="display:block;float:left; width:100%; ">
            :
          <select class="InputTestStyle" id="company" onclick="initDeptSelect()">
            <option>==     ==</option>
          </select>
            :
          <select class="InputTestStyle" id="department" onclick="initGroupSelect()">
            <option>==     ==</option>
          </select>
            :
          <select class="InputTestStyle" id="group" onclick="QueryPhoneNum()">
            <option>==     ==</option>
          </select>
 </div>

4.照会条件の初期化(会社の例)
4.1フロントのJavaScriptコード

  //         
  window.onunload = initCompanySelect();
  //   “  ”   
  function initCompanySelect()
  {
    $.ajax({
      type: 'POST',
      url: '/Home/GetCompantListForPhone',
      dataType: 'json',
      data: { },
      success: function (data) {
        //1.          
        // $('#company option').remove();//      
        $('#company').empty();
        $("#company").append($('<option>' + '==     ==' + '</option>'));
        //2.            ,      。
        for (i = 0; i < data.length;i++)
        {
          $("#company").append($('<option >' + data[i].Conpany + '</option>'));
        }
      },
      error: function (XMLHttpRequest, textStatus, errorThown) {
        alert("    !");
      }
    })
  }
4.2ドロップダウンフレームに対応するアクションResoultコードを初期化する

/// <summary>
///             
/// </summary>
/// <returns></returns>
[HttpPost]
public JsonResult GetCompantListForPhone()
{
  
  compantList =                 ;
  return Json(compantList);
}
他の二つのコンボボックスはこの方法で完成しました。条件によって調べられます。次の二つはペアJavaScriptとバックグラウンド方法です。
5.クエリをバックグラウンドに送信し、戻ってきたセットに基づいて再度テーブルに値を割り当てます。

//        
  function QueryPhoneNum()
  {
    if ($('#group').val() == '==     ==')
    {
      return;
    }
    number = 0;
    $.ajax({
      type: 'POST',
      url: '/Home/PhoneSearchSubmit',
      dataType: 'json',
      data: {
        company:$('#company').val(),
        dept: $('#department').val(),
        group: $('#group').val()
      },
      success: function (phoneList) {
        //1.         
        $('#todeListTBODY tr').remove();
        
        //2.           。
        $.each(phoneList, function (index, element) {
          number = number + 1;
          $('#todeListTBODY').prepend(function (i) {
            return "<tr>" +
               "<td>" +number +
               "<td>" + element.Conpany +
               "<td>" + element.Department +
               "<td>" + element.Team +
               "<td>" + element.Name +
               "<td>" + element.Position +
               "<td>" + element.PhoneNumber +
               "</tr>";
          })
        })
      },
      error: function (XMLHttpRequest, textStatus, errorThown) {
        alert("    !");
      }
    })
  }
5.1クエリデータに対応するアクションResoult

/// <summary>
///     
/// </summary>
/// <returns></returns>
[HttpPost]
public JsonResult PhoneSearchSubmit(string company, string dept, string group)
{
  phoneList =         ;
  return Json(phoneList);
}

以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。