2016-08-24 64 views
0

我想要綁定數據到html表,如下所示。無法將數據附加到jQuery中的表與mvc4

function showDocumentmetaData(docid) { 
     $.ajax(
       { 
        type: "GET", 
        data: { upld_id: docid }, 
        dataType: "html", 
        url: '/documentVerification/GetDocumentmetadata', 
        success: function (data) { 
         alert(data); 
         $('#details').html(""); 
         $('#details').html(data); 
         alert(data); 
        } 
        , error: function (error) { 
        } 
       }); 
    } 
    <table id="details" width="100%" border="0" cellspacing="0" cellpadding="0" class="dataTable" style="text-align:right !important; border-bottom:0"></table> 

GetDocumentmetadata將返回部分視圖如下。

@model c3card.DAL.uploadanddocContentviewModel 
@{ 
     string data=""; 
    int textId; 
    } 
@foreach (var content in Model.uploadanddocContent) 
{ 
    data += "<tr class='no-bdr right-align'><td width='30%' scope='col'>" + content.content_Label + "</td>"; 
    data += "<td width='60%' scope='col'>"; 
    var cntrolType = content.content_controlType; 
    var fieldtype = content.content_fieldType; 
    switch (cntrolType) 
    { 
     case "TextBox": 
      if (fieldtype == "varchar") 
      { 
       data += "<div class='form-box form-box-default'> <input type='text' value='"+content.upld_Value+"' onkeypress='return ValidateAlphaNumeric(event);' id='txtBox" + textId + "' name='" + content.content_Label + "' class='txtBox form-control validate[required]' maxlength='30' placeholder=''></div></td> "; 
      } 
      else if (fieldtype == "datetime") 
      { 
       data += " <div style='width:105%;'><input type='text' value='" + content.upld_Value + "' id='txtBox" + textId + "' name='" + content.content_Label + "' style='width:90%;margin-right:2px;height:38px;' class='form-box form-box-default txtBox form-control datepicker validate[required, custom[date,future[now]]]' placeholder=''></div></td> "; 
      } 
      break; 

    } 
    textId++; 
    data += "</tr>"; 
} 

當我跟蹤上面的代碼變量名爲數據將從模型中獲取數據沒有任何問題。但成功的函數數據不會附加到細節表中。實際上它顯示爲空。我把警報和檢查。我可以知道我要去哪裏嗎?提前致謝。

當我把下面的代碼放在部分視圖中時,它工作正常。

<div class="forms"> 
      @foreach (var content in Model.uploadanddocContent) 
      { 
       <h1>@content.content_Label</h1> 
       switch (content.content_controlType) 
       { 
        case "TextBox": 
         if (content.content_fieldType == "varchar") 
         { 
         <input type='text' id="varchar" [email protected]_Value onkeypress='return ValidateAlphaNumeric(event);' class='txtBox form-control validate[required]' maxlength='30' placeholder='' /> 
         } 
         else if (content.content_fieldType == "datetime") 
         { 
         <input type='text' [email protected]_Value id="varchar" style='width:90%;margin-right:2px;height:38px;' class='form-box form-box-default txtBox form-control datepicker validate[required, custom[date,future[now]]]' placeholder='' /> 
         } 
         break; 
       } 
      } 
    </div> 
     <input type="button" class="btn btn-primary btn-cons submitGreen" value="Update" onclick='updatemetaData(@Model.upldId)' /> 
     <input type="button" value="cancel" class="btn btn-primary btn-cons search" onclick='cancel(@Model.upldId)' /> 

但我想第一種方法工作。可能嗎?

+0

你沒有生成任何html--你所做的只是向「字符串」添加文本(甚至沒有對該字符串做任何事情) –

+0

嗨,斯蒂芬。我編輯了問題。我已經發布了一個更多的代碼。工作正常,但我希望第一種方法的工作,因爲後來我想stringyfy該字符串,我想發送它在AJAX調用 –

+0

第一個例子不會工作,因爲它沒有返回任何東西(你所做的就是創建一個名爲'數據的服務器端變量' - 你沒有返回任何html,你的意思是你想要string_(這根本沒有意義) –

回答

2

你應該追加到表的tbody,不改變它的html。

試試這個:

$('#details').find('tbody').remove(); 
$('#details').find('tbody').append(data); 

希望它能幫助。

+0

但我的數據爲空。 –