Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.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
Javascript 点击按钮将数据从Telerik网格发送到新选项卡/页面_Javascript_C#_Redirect_Telerik_Asp.net Mvc 5 - Fatal编程技术网

Javascript 点击按钮将数据从Telerik网格发送到新选项卡/页面

Javascript 点击按钮将数据从Telerik网格发送到新选项卡/页面,javascript,c#,redirect,telerik,asp.net-mvc-5,Javascript,C#,Redirect,Telerik,Asp.net Mvc 5,我有一个Telerik网格,如下所示(我对MVC比较陌生,对Telerik控件也比较陌生)。网格是从搜索条件列表中更新的局部视图 @(Html.Kendo().Grid((IEnumerable<MyModel>)Model.MyModel) .Name("grid") .DataSource(ds => ds.Ajax() .Model(mod => { mod.Id(m =>

我有一个Telerik网格,如下所示(我对MVC比较陌生,对Telerik控件也比较陌生)。网格是从搜索条件列表中更新的局部视图

@(Html.Kendo().Grid((IEnumerable<MyModel>)Model.MyModel)
    .Name("grid")
    .DataSource(ds => ds.Ajax()
        .Model(mod =>
            {
                mod.Id(m => m.Id);
                mod.Field(p => p.Name).Editable(false);
            }))

    .Columns(columns =>
    {
        columns.Template(@<text></text>).ClientTemplate("<input type='checkbox' #= IsSelected ? checked='checked':'' # class='chkbx' value='#= Id#' name='SelectedArea' />")
                .HeaderTemplate("<input type='checkbox' id='masterCheckBox' onclick='checkAll(this)'/>").Width(20);
        columns.Bound(p => p.Name).Filterable(false).Width(100);
    })
                            .Editable(ed => ed.Mode(GridEditMode.InCell))
                            .Pageable()
                            .Sortable()
                            .Scrollable()
                            .Filterable()
)
@(Html.Kendo().Grid((IEnumerable)Model.MyModel)
.名称(“网格”)
.DataSource(ds=>ds.Ajax()
.Model(mod=>
{
mod.Id(m=>m.Id);
mod.字段(p=>p.Name).可编辑(false);
}))
.列(列=>
{
columns.Template(@).ClientTemplate(“”)
.头部模板(“”)。宽度(20);
columns.Bound(p=>p.Name).Filterable(false).Width(100);
})
.Editable(ed=>ed.Mode(GridEditMode.InCell))
.Pageable()
.Sortable()
.Scrollable()
.可过滤()
)
用户需要能够通过复选框从网格中进行选择,然后单击一个按钮,该按钮将弹出(新窗口/新选项卡),其中包含从网格中的所选项目生成的报告,而不显示原始页面

如果我提交页面,它会将所选列表发回,但会丢失网格的部分页面(以及所有选定的项目。如果我只是创建一个链接并打开一个新页面,它不会发布任何数据,因此我不知道选择了哪些数据。以下是我尝试的一些按钮/操作。我怀疑这比我发现的要简单得多,但我无法通过树看到森林

<input type="submit" name="Command" value="Print Call List" formtarget="_blank" />
<input type="submit" name="Command" value="Print Call List" onclick="location.href='@Url.Action("CallList", "Reports", new { target="_blank" })'" />
@Html.ActionLink("Print Call List", "CallList", "Reports", null, new { target = "_blank" })

@ActionLink(“打印调用列表”、“调用列表”、“报告”、空、新{target=“\u blank”})

我自己终于明白了

我仍然在提交表单,就像单击“搜索”按钮一样。使用不同的按钮,我验证所请求的内容(搜索与打印列表),如果正在搜索,则继续执行以前的操作。如果请求了报告,则我向视图对象添加了一个名为ShowCallList的标志

        if (Request.IsAjaxRequest())
        {
            if ("Print Call List" == command)
            {
                TempData.Add("SelectedArea", searchModel.SelectedArea);
                searchModel.ShowCallList = true;
            }
            searchModel.SearchResults = ExecuteSearch(searchModel);
            return PartialView("_SearchResults", searchModel);
        }
然后将以下代码添加到视图中

@if (Model.ShowCallList)
{
    @Html.Raw("window.open('") @Url.Action("CallList", "Reports", new { target="_blank" }) @Html.Raw("')");
}
它将打印出一个openwindow命令,url的目标为blank,以便在新窗口中打开。我将所需的id列表放入TempData中,将其传递到报告页面

因此,当搜索页面重新加载时,报告会从TempData中获取所需的参数。我还必须对搜索方法进行一个小的修改,以重新检查搜索结果网格中的复选框,以便最终用户觉得只有新页面打开了请求的报告

                IsSelected = searchModel.SelectedArea.Contains(item.ID),