简体   繁体   English

无法使用MVC4将数据追加到jQuery中的表

[英]Unable to append data to table in jquery with mvc4

I am trying to bind data to html table as below. 我正在尝试将数据绑定到html表,如下所示。

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 will return partial view as below. 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>";
}

When i trace the above code variable named data will get data from model without any problem. 当我跟踪上面的代码变量时,名为data的变量将毫无问题地从模型中获取数据。 But in success function data is not appending to details table. 但是,成功的功能数据不会附加到详细信息表中。 In fact it is showing null. 实际上,它显示为空。 i put alert and checked. 我把警报和检查。 May i know where i am going wrong? 我可以知道我要去哪里了吗? thanks in advance. 提前致谢。

When i put below code in partial view it works fine. 当我将下面的代码放在局部视图中时,它可以正常工作。

<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" value=@content.upld_Value onkeypress='return ValidateAlphaNumeric(event);' class='txtBox form-control validate[required]' maxlength='30' placeholder='' />
                      }
                      else if (content.content_fieldType == "datetime")
                      {
                        <input type='text' value=@content.upld_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)' />

but i want first method to work. 但我想第一种方法起作用。 Is it possible? 可能吗?

You should append to the tbody of table, no change its html. 您应该附加到表的正文,而不更改其html。

Try this: 尝试这个:

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

Hope it helps. 希望能帮助到你。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM