2013-08-26 60 views
0

我已经从页面中的下拉列表中使用。DropDown更改显示部分

我想要更改选定的id信息时,加载页面底部。 第一次页面加载是真实的,但下拉更改新页面中的加载信息,而不是当前页面的一部分。

填充下拉列表

public ActionResult selVahedList(int IdType, int IdChoose) 
{ 
    ViewBag.ChooseItem = IdChoose; 
    IEnumerable<Lcity> Lcitys = Dbcon.Lcitys; 
    var model = new CityViewMode 
    { 
     Lcitys = Lcitys.Select(x => new SelectListItem 
     { 
      Value = x.Citycode.ToString(), 
      Text = x.CityName 
     }) 
    }; 
    return View(model); 
}); 

局部视图显示了在下拉菜单中更改

public ActionResult selVahedListAjax(CityViewMode model) 
    { 
     int idcity=Convert.ToInt32(model.SelectedCitycode); 
     // int idcity = 1; 
     ViewBag.Reshteh = 1; 
     //string IdCity = base.Request["SelValue"].ToString(); 
     var res = Dbcon.TaavoniInfos.Where(m => m.IDReshteh == 1 && m.Citycode ==idcity); 
     return PartialView("selVahedListAjax", res); 
    } 

视图页面

AjaxOptions ajaxOpts = new AjaxOptions 
     { 
     UpdateTargetId = "LoadData", 
     LoadingElementId="loadAdmin" 
     }; 
@using (Ajax.BeginForm("selVahedListAjax",ajaxOpts)) 

{ 
    <fieldset> 
<div class="PContent"> 
<p class="DroplistCity" id="DroplistCity"> 

     @Html.DropDownListFor(
     x => x.SelectedCitycode, 
     new SelectList(Model.Lcitys, "Value", "Text","")) 

     <div id="LoadData"> 
     @Html.Action("selVahedListAjax", new { IdReshte = ViewBag.ChooseItem }) 
    </div> 

    </div> 
    </fieldset> 
    } 
    <script language="javascript" type="text/javascript"> 
     $(document).ready(function() { 
      $('#SelectedCitycode').change(function() { 
       this.form.submit(); 
      }); 
     }); 
    </script> 

感谢您的帮助

my partial view code is:           @model 

IEnumerable<TaavonS.Models.TaavoniInfo> 

    <ul> 
    @foreach (var item in Model) 
    { 
      <li>:<b>@Html.DisplayFor(modelItem => item.SName)</b></li> 
     <li>:<b>@Html.DisplayFor(modelItem => item.ModirName)</b></li> 
     <li><img src="@Url.Content("~/Content/img/list16.png")" alt=""/> 
     @Html.ActionLink("detail....", "Detaild",new { codef= item.Scode }, new { @class = "openDialog", data_dialog_id = "emailDialog", data_dialog_title = "" }) 
     <hr class="separatorLine"/></li> when i load page is true but after dropdownlist is nt work 


    <li> 
     @if (!string.IsNullOrEmpty(item.TablighatPic)) 
     { 
     <img src="@Url.Content("~/Content/img/eye.png")"/> @Html.ActionLink("تبلیغات....", "showImg", new { code = item.Scode }, new { @class = "openImg", data_dialog_id = "mailDialog" })<hr class="separatorLine"/> 
     } 
    </li> 
    } 
    </ul> 

回答

0

我认为你需要改变你的ajaxOptions:

AjaxOptions ajaxOpts = new AjaxOptions 
    { 
    UpdateTargetId = "LoadData", 
    LoadingElementId="loadAdmin", 
    InsertionMode = InsertionMode.Replace // add this line 
    }; 

的参数添加到beginForm呼叫

@using (Ajax.BeginForm("selVahedListAjax", 
     new { IdReshte = ViewBag.ChooseItem }, //add this to the Ajax.BeginForm call 
     ajaxOpts)) 

{  

,并从目标DIV删除此行如果您不希望在用户选择任何内容之前执行ajax呼叫

@Html.Action("selVahedListAjax", new { IdReshte = ViewBag.ChooseItem }) 
+0

谢谢你的帮助,我把插入模式,但没有解决我的问题 – Raly

+0

忘了提及,你必须将你想显示在LoadData的div的东西移动到另一个局部视图,否则,整个页面被重新插入到目标div – JTMon

+0

我的部分视图代码是: – Raly