2016-04-17 9 views
2

私はドロップダウンリストを持っています。ドロップダウンリストは、ドロップダウンリストアイテムをリフレッシュするためのリンク&のカテゴリリストを持っています。1つのドロップダウンリストをリフレッシュ/リビジングするasp.net MVC

@Html.DropDownList("CategoryNameItemNameBinding", Model.CatgegoryNameItems) 

<a href="javascript:void(0)" id="opener" onclick="openDialog('Category',this)">Refresh Category List</a> </span> 

リンクがクリックされたとき、DropDownListコントロールがバインドされているデータベーステーブルが更新されるボタンの小さなポップアップウィンドウを開きます。

問題は、データベーステーブルが更新されても、ページを手動でリフレッシュするか、移動してページに戻るまで、ドロップダウンリストに新しいアイテムが表示されないことです。

ページ全体を更新/再読み込みしたくありません。新しいアイテムを反映するためにドロップダウンリストを更新するにはどうすればいいですか?

おかげ

+0

ajaxを使用して、データベースを照会するコントローラメソッドを呼び出すと、ドロップダウンリストに項目を返すか、ポップアップからビューに追加する新しい値を既に知っているので)、ちょうどjavascriptを使用して、ポップアップのデータに基づいて新しいオプションを追加する –

+0

こんにちはスティーブン、返信ありがとう。私はMvcに新しいので、あなたはajaxコールのサンプルを投稿してください。私は多くの例を見つけましたが、どちらが正しいかわかりません。 – Robin

答えて

0

あなたのAjax呼び出しが

$("#linkId").on('click', function (event) { 
      var url = "GetList"; 
      $.ajax({ 
       data: {}, 
       type: 'POST', 
       cache: false, 
       dataType: 'json', 
       url: url, 
       success: function (result) { 
        $("#dropDownId").empty(); 
        $("#dropDownId").append('<option value="">Select One</option>'); 
        $.each(result, function (i, item) { 
         $("#AddItemItemId").append('<option value="' + item.Value + '">' + 
          item.Text + '</option>'); 
         // here we are adding option for States 
        }); 
       }, 
       error: function (ex) { 
        alertify.alert('We face some technical difficulties. Hello World'); 
       } 
      }); 
      event.preventDefault(event); 
     }); 

とバックエンドのC#コードになりますが

[HttpPost] 
    public JsonResult GetList() 
    { 

     var itemlist = _itemManager.GetItems(); 
     var itemList = itemlist.Select(item => new SelectListItem { Text = item.ItemName+" - "+item.PowerName, Value = Convert.ToString(item.Id) }).ToList(); 
     return Json(new SelectList(itemList, "Value", "Text")); 
    } 

を好きになるでしょう、これはあなたを助けることを願っています。ハッピーコーディング

+0

これは本当に感謝、仕事をしました。 – Robin

+0

感謝のおかげで –

関連する問題