当前位置: 首页 > 知识库问答 >
问题:

在链接上添加弹出模式,以在用户单击“用户”列时打开

巫马承德
2023-03-14

好的,所以我有index page,其中列出了所有票证,我有列user。我在此列中添加标记

{
            "data": "applicationUser.name",
            "width": "10%",
            "targets": [1],
            "render": function (data) {
                return '<a class="text-info" href="' + data + '" target_blank>' + data + '</a>'
            }
        },

同时我还创建了弹出模式的函数

$(".table-info").click(function () {
    var id = $(this).attr("userDetails");
    $.get("/Manager/Ticket/UserDetails?id=" + id, function (result) {
        $("#container").append(result);
        $("#userDetails").modal({ show: true })
    })
})

下面是模式弹出窗口,我创建了partialview.cshtml

@model VmSTicketing.Models.ViewModels.TicketVM

<div class="modal fade" id="userDetails">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">X</button>
                <h3 class="modal-title">Podaci o Useru</h3>
            </div>
            <div class="modal-body">
                <div class="row dataTable">
                    <div class="col-md-4">
                        <label class="control-label">Ime i Prezime</label>
                    </div>
                    <div class="col-md-8">
                        <input type="text" class="form-control" asp-for="Ticket.ApplicationUser.Name" disabled id="ImePrezime" name="ImePrezime">
                    </div>
                </div>

                <br>

                <div class="row dataTable">
                    <div class="col-md-4">
                        <label class="control-label">Email Adresa</label>
                    </div>
                    <div class="col-md-8">
                        <input type="text" class="form-control" asp-for="Ticket.ApplicationUser.Email" disabled id="Email" name="Email">
                    </div>
                </div>

                <br>

                <div class="row dataTable">
                    <div class="col-md-4">
                        <label class="control-label">Broj Telefona</label>
                    </div>
                    <div class="col-md-8">
                        <input type="text" asp-for="Ticket.ApplicationUser.PhoneNumber" class="form-control" disabled id="BrTel" name="BrTel">
                    </div>
                </div>
                <br />

                <div class="row dataTable">
                    <div class="col-md-4">
                        <label class="control-label">Klijent</label>
                    </div>
                    <div class="col-md-8">
                        <input type="text" asp-for="Ticket.ApplicationUser.Client" class="form-control" disabled id="klijent" name="klijent">
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

下面是我的表结构的IndexPage:

@model IEnumerable<VmSTicketing.Models.Ticket>

@{
    ViewData["Title"] = "Index";
    Layout = "~/Views/Shared/AdminLTE/_Layout.cshtml";

}


<br />
<div class="row">
    <div class="col-6">
        <h2 class="text-primary">Lista tiketa</h2>
    </div>
    <div class="col-6 text-right">
        <a class="btn btn-primary" asp-action="Upsert"><i class="fas fa-plus"></i> &nbsp; Novi tiket</a>
    </div>
</div>

<br />

<div class="p-4 border rounded">
    <table id="tblData" class="table table-striped table-bordered" style="width:100%">
        <thead class="thead-dark">
            <tr class="table-info">
                <th>Opis</th>
                <th>Datum i vrijeme slanja</th>
                <th>Vrsta Tiketa</th>
                <th>Status</th>
                <th>Datum i vrijeme zavrsetka</th>
                <th>Korisnik</th>
                <th></th>
            </tr>
        </thead>
    </table>
</div>

<partial name="UserDetails" />


@section Scripts{
    <script src="~/js/ticket.js"></script>
}

到目前为止,这种模式工作,但当我单击table header时,不在用户链接中。我试着找出我犯错的地方,但不幸的是我看不出错误在哪里。所以我想添加这个函数,以便在用户单击标记时加载弹出窗口,这里是我的代码ticket.js,在这里我调用我的数据表

function loadDataTable() {
    dataTable = $('#tblData').DataTable({
        "ajax": {
            "url": "/Manager/Ticket/GetAll"
        },
        "columns": [
            { "data": "description", "width": "10%" },
            { "data": "dateAndTime", "width": "15%" },
            { "data": "ticketType.name", "width": "10%" },
            { "data": "status", "width": "10%" },
            { "data": "answered", "width": "15%" },
            {
                "data": "applicationUser.name",
                "width": "10%",
                "targets": [1],
                "render": function (data) {
                    return '<a class="text-info" href="' + data + '" target_blank>' + data + '</a>'
                }
            },
            {
                "data": "id",
                "render": function (data) {
                    return `
                            <div class="text-center">
                                <a href="/Manager/Discussion/OpenDiscussion/${data}" class="btn btn-primary text-white" style="cursor:pointer">
                                    <i class="fas fa-comments"></i>
                                </a>
                                <a href="/Manager/Ticket/Details/${data}" class="btn btn-success text-white" style="cursor:pointer">
                                    <i class="fas fa-info"></i>
                                </a>
                                <a onclick=Delete("/Manager/Ticket/Delete/${data}") class="btn btn-danger text-white" style="cursor:pointer">
                                    <i class="fas fa-trash-alt"></i> 
                                </a>                              
                            </div>
                           `;
                }, "width": "15%"
            }
        ]
    });
}

我不确定如何分配这个函数加载到标签上??有什么建议吗??


共有1个答案

林波鸿
2023-03-14

实际上需要调整datatable JS中的renderfunctionapplicationuser.username属性。

您可以为user-details添加类:

"data": "applicationUser.name",
"render": function (data) {
   return '<a id="' + data + '" class="text-info user-details" href="' + data + '" target_blank>' + data + '</a>'
            }

并且您的事件侦听器应该如下所示,这样它应该只在单击数据行而不是表头行时才会被触发:

$(".table-info").click("click" , "a.user-details",function () {
    var id = this.id;
    $.get("/Manager/Ticket/UserDetails?id=" + id, function (result) {
        $("#container").append(result);
        $("#userDetails").modal({ show: true })
    });
});

当前,您的事件在类table-info上触发,该类也在上应用,用于该,而该最终不是所需的行为。

 类似资料:
  • 我想通过rest api和postman读取一个领域的所有用户。如果我送http://localhost:8080/realms/{realm}/我没有收到任何回复。有人知道如何使用api的教程吗?我还想添加用户,这不适用于api。我阅读了KeyClope api的描述,但我不明白我要做什么。 谢谢

  • 问题内容: 我将如何在表单中添加功能,以便用户可以通过单击“添加”来添加更多输入字段。这使用了角度正式库。 这是确切功能的示例,但仅使用angularjs完成。 动态添加表单字段 问题答案: 看到这个plnkr 这是您需要的示例。正如您在插件中看到的那样,可以通过单击按钮动态创建一个。单击按钮也可以删除创建的内容。 请参阅下面的 HTML 和 JS 将如下

  • 我正在尝试使用引导模式http://twitter.github.com/bootstrap/javascript.html#modals在rails链接上,在模式中打开该链接 但不知何故,它不起作用。标准切换代码为- 但我不知道如何将其应用于rails中的链接,有什么帮助吗? 谢谢

  • 我有2个循环在1个表单中的一个链接得到在每个循环内创建。第一个循环上的第一个链接打开一个弹出窗口,但所有其他链接将打开一个新页面。我不确定为什么所有的链接都不能在弹出窗口中打开

  • 问题内容: 我试图从postgres映像创建一个Dockerfile。该仓库说应该通过在/docker-entrypoint- initdb.d/中放置一个shell脚本来处理初始化。我根据在网上找到的示例放置了以下脚本: 反斜杠似乎是必需的,因为否则会出现解析错误。该脚本运行无误,除CREATE TABLE命令外的所有命令似乎都起作用。 单用户模式不支持表创建吗?如果是这样,是否有更好的方法让d

  • 问题内容: 我想让页面在用户单击链接时运行一些PHP代码,而不重定向它们。这有可能吗 或使用javascript onclick事件? 问题答案: 是的,您需要有一个onclick触发的javascript函数,该函数会对页面进行AJAX加载,然后返回false,这样就不会在浏览器中将其重定向。如果您的项目可以接受,则可以在jQuery中使用以下内容: 如果您需要使用表单值(使用$ .post()