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

如何使用bootstrap模式编辑MVC中的表数据?

田向荣
2023-03-14

我在MVC视图中有一个显示员工详细信息的表。我想添加一个编辑功能,但不是在新页面中打开它,而是使用引导模式来显示它。(http://twitter.github.com/bootstrap/javascript.html#modals)

我不认为我必须使用ajax,因为数据已经在页面上可用。我想我需要一些jquery或razor代码来将选定的员工数据传递给引导模式,并将其弹出在同一屏幕上。下面是我的代码。如有任何帮助,将不胜感激。谢谢

@Foreach(var item in Model.Employees)
{
<tr>
   <td>@User.Identity.Name
            </td>
            <td>@item.FirstName
            </td>....other columns
<td><a href="#myModal" role="button" class="btn" data-toggle="modal">Edit</a>
    <td>
    </tr>........other rows
}
**Bootstrap Modal**


<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">

  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Edit Employee</h3>
  </div>

  <div class="modal-body">
    <p>Selected Employee details go here with textbox, dropdown, etc...</p>
  </div>

  <div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    <button class="btn btn-primary">Save changes</button>
  </div>
</div>

共有1个答案

公西财
2023-03-14

确实有两种可能性:有没有Ajax。如果您想在没有AJAX的情况下做到这一点,您可以订阅Edit链接的click事件,然后将表中的值复制到模态,最后显示模态。

所以首先给编辑链接一些类:

<a href="#" class="btn edit">Edit</a>

您可以订阅的:

$('a.edit').on('click', function() {
    var myModal = $('#myModal');

    // now get the values from the table
    var firstName = $(this).closest('tr').find('td.firstName').html();
    var lastName = $(this).closest('tr').find('td.lastName').html();
    ....

    // and set them in the modal:
    $('.firstName', myModal).val(firstName);
    $('.lastNameName', myModal).val(lastName);
    ....

    // and finally show the modal
    myModal.modal({ show: true });

    return false;
});

如果希望使用AJAX,可以生成如下链接:

@Html.ActionLink("Edit", "Edit", "Employees", new { id = employee.Id }, new { @class = "btn edit" })

然后订阅该按钮的click事件并触发AJAX请求:

$('a.edit').on('click', function() {
    $.ajax({
        url: this.href,
        type: 'GET',
        cache: false,
        success: function(result) {
            $('#myModal').html(result).find('.modal').modal({
                show: true
            });
        }
    });

    return false;
});

您将在主视图中为模态提供一个简单的占位符,该占位符将包含详细信息:

<div id="myModal"></div>
public ActionResult Edit(int id)
{
    Employee employee = repository.Get(id);
    EmployeeViewModel model = Mapper.Map<Employee, EmployeeViewModel>(employee);
    return PartialView(model);
}
@model EmployeeViewModel

<div class="modal hide fade">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h3>Edit Employee</h3>
    </div>
    <div class="modal-body">
        <div>
            @Html.LabelFor(x => x.FirstName)
            @Html.EditorFor(x => x.FirstName)
        </div>
        <div>
            @Html.LabelFor(x => x.LastName)
            @Html.EditorFor(x => x.LastName)
        </div>
        ...
    </div>
    <div class="modal-footer">
        <a href="#" class="btn btn-primary" data-dismiss="modal">Close</a>
        <button class="btn btn-primary">Save changes</button>
    </div>
</div>
 类似资料:
  • 问题内容: 我正在使用MVC 4和Entity Framework开发Intranet Web应用程序。我有一个可以通过编辑操作进行修改的人员列表。我想通过使用模式形式使我的应用程序更加动态。所以我试图将编辑视图放入Bootstrap模态,对此我有两个问题: 我应该使用简单视图还是局部视图? 我如何执行验证(实际上它可以工作,但会将我重定向到我的原始视图,因此不以模式形式出现) 我认为我必须使用A

  • 很多天来,我一直试图在FlexGrid中实现模态对话框编辑,但都没有成功。 我从一个非常简单的例子开始: http://mvc4beginner.com/Sample-Code/Insert-Update-Delete/Asp-.Net-MVC-Ajax-Insert-Update-Delete-Using-Flexigrid.html 我对这个示例进行了很多扩展,但遇到了一个障碍,我不知道如何实

  • 问题内容: 我是django的新手,所以对我的新手问题感到抱歉,我 有一个模型,我需要让用户使用django表单或任何其他方式在其中编辑数据。 看上面的图像,我想显示此表单,其中已准备好填充数据,并让用户对其进行更新。 做这个的最好方式是什么 ? 编辑:这是我的views.py代码 请帮忙 问题答案: 假设你使用,请使用关键字参数,并传递你要更新的模型。 因此,如果你具有和(后者必须扩展),那么你

  • 如何使用 MVC 模式 首先,你需要确定你的项目中的每个类都是三大基本类型中的一种:控制器、模型、视图。不要在一个类里糅合多个角色。目前我们创建了 Album 类和 AlbumView 类是符合要求的,做得很好。 然后,为了确保你遵循这种模式,你最好创建三个项目分组来存放代码,分别是 Model、View、Controller,保持每个类型的文件分别独立。 接下来把 Album.swift 拖到

  • MATLAB的figure窗口支持一种指向和点击方式的编辑模式,用它可以自定义图形的外观。以下插图说明打开了作图编辑模式的figure窗口及标明了此模式的主要特点。

  • 问题内容: 如果我去这里 然后单击“启动演示模态”,即可完成预期的操作。我将模式用作注册过程的一部分,并且涉及服务器端验证。如果有问题,我想将用户重定向到显示我的验证消息的相同模式。目前,除了用户的物理点击之外,我无法弄清楚如何显示模式。如何以编程方式启动模型? 问题答案: 为了手动显示模式弹出窗口,您必须执行此操作 以前,您需要使用对其进行初始化,以便在您手动执行之前不会显示它。 模态容器的ID