Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何确定WebGrid触发ajaxUpdateCallback的原因_Jquery_Twitter Bootstrap 3_Webgrid_Asp.net Mvc 5 - Fatal编程技术网

Jquery 如何确定WebGrid触发ajaxUpdateCallback的原因

Jquery 如何确定WebGrid触发ajaxUpdateCallback的原因,jquery,twitter-bootstrap-3,webgrid,asp.net-mvc-5,Jquery,Twitter Bootstrap 3,Webgrid,Asp.net Mvc 5,得到了一个主要用于显示WebGrid(MVC 5)和用于编辑行的Bootstrap 3.0.2模式(jQuery 2.0.3)的页面。只是一个小问题。。。该对话框不仅在我单击行时出现,而且在我单击列标题和寻呼机链接中的排序链接时也会出现。理想情况下,我希望能够区分是什么触发了ajaxUpdateCallback,以便有条件地在回调处理程序中显示模式 以下是我的观点中的代码 @using School.Models @model IEnumerable<Course> @{

得到了一个主要用于显示WebGrid(MVC 5)和用于编辑行的Bootstrap 3.0.2模式(jQuery 2.0.3)的页面。只是一个小问题。。。该对话框不仅在我单击行时出现,而且在我单击列标题和寻呼机链接中的排序链接时也会出现。理想情况下,我希望能够区分是什么触发了ajaxUpdateCallback,以便有条件地在回调处理程序中显示模式

以下是我的观点中的代码

@using School.Models
@model IEnumerable<Course>

@{
    ViewBag.Title = "Courses";
}

<h2>@ViewBag.Title</h2>

@{
    var grid = new WebGrid(Model, rowsPerPage: 15, ajaxUpdateContainerId: "gridContent", ajaxUpdateCallback: "webGridUpdated");
}
<div id="gridContent">
    @grid.GetHtml(htmlAttributes: new { id = "grid", @class = "table table-striped table-hover table-condensed" },
        columns: grid.Columns(
            grid.Column("Name", header: string.Format("Name {0}", grid.SortColumn == "Name" ? grid.SortDirection == SortDirection.Ascending ? "▼" : "▲" : ""),
                format: @<text>@item.GetSelectLink(item.Name)</text>),
            grid.Column("Active", header: string.Format("Active {0}", grid.SortColumn == "Active" ? grid.SortDirection == SortDirection.Ascending ? "▼" : "▲" : ""),
                format: (item) =>
                {
                    var course = item.Value as Course;
                    return Html.DisplayFor(modelItem => course.Active);
                }
            )
        )
    )

    @if (grid.HasSelection)
    {
        @Html.Partial("Edit", (Course)grid.SelectedRow.Value)
    }
    else // New Course
    {
        @Html.Partial("Create", new Course() { })
    }
</div>

<script type="text/javascript">
    function webGridUpdated() {
        // Would like to be able to wrap this in a conditional
        $('#EditModal').modal('show');
    }
</script>
@使用School.Models
@模型IEnumerable
@{
ViewBag.Title=“课程”;
}
@视图包。标题
@{
var grid=新的WebGrid(模型,行页面:15,ajaxUpdateContainerId:“gridContent”,ajaxUpdateCallback:“WebGridUpdate”);
}
@GetHtml(htmlAttributes:new{id=“grid”,@class=“table table striped table hover table condensed”},
列:grid.columns(
grid.Column(“名称”,标题:string.Format(“名称{0}”),grid.SortColumn==“名称”?grid.SortDirection==SortDirection.升序?”▼" : "▲" : ""),
格式:@@item.GetSelectLink(item.Name)),
grid.Column(“活动”,标题:string.Format(“活动{0}”),grid.SortColumn==“活动”?grid.SortDirection==SortDirection.升序?“▼" : "▲" : ""),
格式:(项目)=>
{
var课程=项目。价值为课程;
返回Html.DisplayFor(modelItem=>course.Active);
}
)
)
)
@if(网格选择)
{
@Html.Partial(“编辑”,(课程)grid.SelectedRow.Value)
}
其他//新课程
{
@Html.Partial(“创建”,新课程(){})
}
函数webGridUpdated(){
//希望能够将其包装在一个条件
$('EditModal').modal('show');
}

在Chrome开发工具中,您可以在“任意XHR”事件上设置断点。一旦遇到断点,您可以查看调用堆栈以确定触发XHR的原因。

在Chrome开发工具中,您可以在“任意XHR”事件上设置断点“事件。一旦遇到断点,您可以查看调用堆栈以确定触发XHR的原因。

发现我的模式对话框的表单操作是使用AJAX设置为/Courses/Edit/4(或任何非零整数)。”如果我单击网格中的一行,但是如果我单击排序或寻呼机超链接,则为/Courses/Edit/0。因此,我在网格的回调中添加了一些代码来检查这一点,并有条件地打开引导模式。

发现我的模式对话框的表单操作是使用AJAX设置为/Courses/Edit/4(或任何非零整数)如果我单击网格中的某一行,但是如果我单击排序或寻呼机超链接,则为/Courses/Edit/0。因此,我在网格的回调中添加了一些代码来检查这一点,并有条件地打开引导模式