2017-03-19 1 views
0

SOx에 관한 많은 질문은 Ajax 데이터를 사용하여 dropdownsList를 채우는 것에 대해 입니다.강력 유형 모델에서 동적으로 추가 된 드롭 다운 목록을 채우는 방법

그러나 항목이 포함 된 강력한 형식의 모델에 이미 데이터가 있습니다. 내 드롭 다운 목록을 채우기 위해 그것을 사용하고 싶습니다 - 어떻게해야합니까?

그래서, 는 드롭 다운리스트, 채우는 방법을 있는 테이블에 새 행을 추가 한 후 /를cities Model데이터에서 새로 복제 된 dropDownList을 결합한다.

// List of cities in my Model, Location 
LocationModel { 
... 
IEnumerable<City> Cities } 

은 행을 복제 된 : 및 내보기에서 나는

<table id="rowtemplate"> 
<tr> 
    <td> 
     <input type="hidden" name="Records.Index" value="#" /> 
     <span class="citiesCss"> 
      //DropDownList to clone 
      <select class="form-control citiesCssId" id="Records_[#]__SelectedCityFromList" name="Records[#].SelectedCityFromList"> 
       <option value="">Default</option>     
      </select> 
    </span> 
    </td> 

    <td> ... another cell  
    </td> 
</tr> 
</table> 

가 어떻게이 CityList model 값에서 새로 복제 된 드롭 다운를 채울 결합/수 행을 복제?

$("#CloneButton").click(function() { 
     var index = (new Random()); 
     var clone = $('#rowtemplate').clone(); 
     clone.html($(clone).html()); 
     clone.find('.cities').text(cities);    
     $('#MainTable').append(clone.find('tr')); 
    }); 
+0

<option> 요소를 포함 지금 다음

<table id="rowtemplate"> .... <select class="form-control citiesCssId" name="Records[#].SelectedCityFromList"> <option value="">Default</option> @foreach(var city in Model.Cities) { <option value="@city.Id">@city.Name</option> } </select> .... </table> 

을 등록 IdName을 포함, 왜 당신은하지 않습니다 선택에서 복제본이 옵션을 복사하도록 처음 생성 될 때 선택에서 옵션을 만듭니 까? –

+0

@StephenMuecke 죄송합니다. 다음과 같지 않습니다. 모델에 액세스하여 값을 복제하려면 어떻게해야합니까? 이후 드롭 다운은 뷰가 서버에서 렌더링 된 후에 * 새 행 추가 *에 추가되므로 클라이언트 측에서 렌더링됩니다. 따라서, 이것은 @Html.DropDownListFor (m => m.SelectedCity, Model.City, "", new {@class = "form-control"})'입니다. – transformer

+0

@StephenMuecke 당신이 다음'숨겨진 DropDown'를 작성하고 말하는'clone' 템플릿에서 – transformer

답변

1

보기가 생성 될 때 컬렉션을 기반으로 템플릿에 옵션을 만들 수 있습니다. 가정 City이 템플릿을 복사 var clone = $('#rowtemplate').clone();를 사용할 때 데이터 모델의 경우, clone의 값도

관련 문제