【问题标题】:View content in table row detail with format JSON以 JSON 格式查看表格行详细信息中的内容
【发布时间】:2020-07-30 16:52:44
【问题描述】:

我创建了一个表,在该表中单击一个按钮会打开和关闭行本身的详细信息。 在详细信息中,您可以看到我无法格式化的 JSOn,但最重要的是,我无法将其放入表格的大小中。

有什么办法吗?

我是这样做的:

HTML

<section>
<table style="font-family: arial, sans-serif;  border-collapse: collapse; width: 100%; table-layout: fixed; " 
        >
    @* Intestazione *@
    <thead>
        <tr>
            <th>
                ID TRANSAZIONE
            </th>
            <th>
                DATA
            </th>
            <th>
                DESCRIZIONE
            </th>
            <th>
                SORGENTE
            </th>
            <th>
                DETTAGLI
            </th>
        </tr>
    </thead>

    @* Valori Table *@
    <tbody>
        @if (Model.Tracelog != null)
        {
            @foreach (var item in Model.Tracelog)
            {
                <tr class="expandable @((item.TransactionSequence == "1") ? "request" : "response")">
                    <td>
                        @Html.DisplayFor(modelItem => item.TransactionId)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.TraceDate)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.TraceDescription)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.SourceName)
                    </td>
                    <td>
                        <input class="btn btn-info" type="button" value="Apri Dettagli">
                    </td>
                </tr>
                <tr>
                    <td colspan="5">
                        @(@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(item.TraceBlob)));
                    </td>
                </tr>
            }
        }
    </tbody>
</table>

CSS

  <style>

    td, th {
        border: 1px solid #dddddd;
        text-align: left;
        padding: 8px;
    }
</style>
<style type="text/css">


    .request {
        background-color: LightGreen;
    }

    .response {
        background-color: LightCoral;
    }
</style>

JS

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="/js/jquery.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $('.expandable').nextAll('tr').each(function () {
            if (!($(this).is('.expandable')))
                $(this).hide();
        });
        $('.expandable input[type=button]').click(function () {
            var trElem = $(this).closest("tr");
            trElem.nextAll('tr').each(function () {
                if ($(this).is('.expandable')) {
                    return false;
                }
                $(this).toggle();
            });
        });
        $('#expand_all').click(function () {
            $('.expandable').nextAll('tr').each(function () {
                if (!($(this).is('.expandable')))
                    $(this).show();
            });
        });
        $('#collaps_all').click(function () {
            $('.expandable').nextAll('tr').each(function () {
                if (!($(this).is('.expandable')))
                    $(this).hide();
            });
        })
    });
</script>

结果如下:

提前致谢。

编辑: 我想以 JSON 格式显示,即:

{
     "MessageBody": {
         "IdGateway": "002",
         "MsgId": "a8beaabe-80da-4721-bc67-7983ee87d516",
         "Timestamp": "1579516070021",
         "Version": "1.0",
         "Period": "300000",
         "SensorsStatus": [
             {
                 "SensorId": "status",
                 "SensorValue": "0"
             }
         ]
     },
     "Topic": "CERT / 01234 / GICS / STATUS / 002"
}

【问题讨论】:

    标签: javascript html css razor-pages


    【解决方案1】:

    在 .显示原文

    table, th, td {
      border: 1px solid black;
    }
    <table>
      <tr>
        <th>Month</th>
        <th>Savings</th>
      </tr>
      <tr>
        <td>January</td>
        <td>$100</td>
      </tr>
      <tr>
        <td>February</td>
        <td><pre>{
         "MessageBody": {
             "IdGateway": "002",
             "MsgId": "a8beaabe-80da-4721-bc67-7983ee87d516",
             "Timestamp": "1579516070021",
             "Version": "1.0",
             "Period": "300000",
             "SensorsStatus": [
                 {
                     "SensorId": "status",
                     "SensorValue": "0"
                 }
             ]
         },
         "Topic": "CERT / 01234 / GICS / STATUS / 002"
    }</pre></td>
      </tr>
    </table>

    UPD:在表格内

    【讨论】:

    • 我应该如何更改此指令? @(@Html.Raw (Newtonsoft.Json.JsonConvert.SerializeObject (item.TraceBlob)));
    • 放在这里
       @(@Html.Raw.....)
    • 它不起作用,因为pre不能嵌套在tr元素中
    • 好的。然后在此处查看 TD 标签示例 codepen.io/Vova_Champion_1/pen/rNOedEZ
    • 解决了 word-wrap:break-word 感谢 Vova 对
      的帮助
    猜你喜欢
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多