2016-08-27 9 views
1

WebGridに追加された新しい行にドロップダウンリストを提供できますか?私はこのドロップダウンリストをwebgridの新しい行にバインドする方法は?

'<td >@Html.DropDownList("Team", (IEnumerable<SelectListItem>)ViewBag.Teams, "")</td>' 

を追加しようと、それは

Uncaught SyntaxError: Invalid or unexpected token at <td ><select id="Team" name="Team"><option value=""></option> .

はコード言う:

var row = '<tr class="webgrid-row-style">'+ 
      '<td class="col3Width"><input type="text" id="Date" value=""  class="edit-mode date-picker" /></td>' + 
      '<td >@Html.DropDownList("Team", (IEnumerable<SelectListItem>)ViewBag.Teams, "")</td>' + 
      '<td ><span><input type="text" id="Name" value="" class="edit-mode /></span></td>' + 
      '<td ><span><input type="text" id="Category" value="" class="edit-mode/></span></td>' + 
      '<td ><span><input type="text" id="Received_Count" value="" class="edit-mode" /></span></td>' + 
      '<td ><span><input type="text" id="Done_Count" value="" class="edit-mode" /></span></td>' + 
      '<td ><button class="add-item edit-mode">Add</button>&nbsp;<button class="remove-item edit-mode">Cancel</button></td>' + 
      '</tr>'; 

$('table tbody:last').append(row); 

がエラー:

Uncaught SyntaxError: Invalid or Unexpected token

答えて

1

使用したがって、あなたがエラーを得

'<td >@Html.DropDownList("Team", (IEnumerable<SelectListItem>)ViewBag.Teams, "")</td>' 

のようなJavaScriptの文字列で、それが無効である

'<td ><select id="Team" name="Team"><option value=""></option> 
<option>Sukantha</option> 
<option>Shruti</option> 
<option>Shilpa</option> 
<option>Sachin</option> 
<option>Ramya</option> 
<option>Nishmitha</option> 
<option>Mahesh</option> 
</select></td>' 

以下のような複数行の文字列を生成し、。回避策として

、あなたのビューに隠されたdivのどこかの内側

<div id="divTeams" style="display: none;"> 
    @Html.DropDownList("Team", (IEnumerable<SelectListItem>)ViewBag.Teams, "") 
</div> 

@Html.DropDownListを配置しようとし、その後こんにちは、あなたの答えは非常に動作しますが、中に$('#divTeams').html()

var row = '<tr class="webgrid-row-style">'+ 
      '<td class="col3Width"><input type="text" id="Date" value=""  class="edit-mode date-picker" /></td>' + 
      '<td >' + $('#divTeams').html() + '</td>' + 
      '<td ><span><input type="text" id="Name" value="" class="edit-mode /></span></td>' + 
      '<td ><span><input type="text" id="Category" value="" class="edit-mode/></span></td>' + 
      '<td ><span><input type="text" id="Received_Count" value="" class="edit-mode" /></span></td>' + 
      '<td ><span><input type="text" id="Done_Count" value="" class="edit-mode" /></span></td>' + 
      '<td ><button class="add-item edit-mode">Add</button>&nbsp;<button class="remove-item edit-mode">Cancel</button></td>' + 
      '</tr>'; 

$('table tbody:last').append(row); 
+0

を使用して生成された文字列を取得私のコードは、これらのドロップダウン要素に以下のように動的IDを割り当てます: 'var e = document.getElementById( "Team_"); e.id = "チーム_" +インデックス。 var f = document.getElementById( "Name_"); f.id = "Name_" +インデックス。 var g = document.getElementById( "Category_"); g.id = "カテゴリ_" +インデックス; 選択した値$( "#Team_" + index).val()を取得しようとすると、何も返されません。 私はchromeでコードを調べ、IDは完全に割り当てられていますが、選択された値は返されません。 – Techie

+0

ダイナミックIDはどこに正確に割り当てられますか? – ekad

+0

ここに: var existrow = $( '。save')。length; if(existrow == 0){ var index = $( "#grid tbody tr")。length + 1; var e = document.getElementById( "Team_"); e.id = "チーム_" +インデックス。 e.id = "チーム_" +インデックス。 var f = document.getElementById( "Name_"); f.id = "Name_" +インデックス。 var g = document.getElementById( "Category_"); g.id = "カテゴリ_" +インデックス。 var tr = ............; $( "#grid tbody")。append(tr); } – Techie

関連する問題