Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
C# 使用MCV将结果从网格分散到多个页面_C#_Asp.net Mvc_Model View Controller_Datagrid - Fatal编程技术网

C# 使用MCV将结果从网格分散到多个页面

C# 使用MCV将结果从网格分散到多个页面,c#,asp.net-mvc,model-view-controller,datagrid,C#,Asp.net Mvc,Model View Controller,Datagrid,我目前有一个显示一些数据的网格视图(我更喜欢一个表,但这是我想要的)。返回数据的查询可以返回100多条记录 我希望一次只能显示10条记录,然后将其余结果放在另一个页面上,用户可以单击按钮2、3、4等 通常我会使用数据表来完成这项工作,但由于这是一个网格,我不太确定如何处理它。下面是我的代码。如果有人能给我一个想法或给我指出正确的方向,我将不胜感激 视图: @使用(Html.BeginForm(“SearchGenericLogs”、“Tools”、FormMethod.Post)){ @Drop

我目前有一个显示一些数据的网格视图(我更喜欢一个表,但这是我想要的)。返回数据的查询可以返回100多条记录

我希望一次只能显示10条记录,然后将其余结果放在另一个页面上,用户可以单击按钮2、3、4等

通常我会使用数据表来完成这项工作,但由于这是一个网格,我不太确定如何处理它。下面是我的代码。如果有人能给我一个想法或给我指出正确的方向,我将不胜感激

视图:

@使用(Html.BeginForm(“SearchGenericLogs”、“Tools”、FormMethod.Post)){
@DropDownListFor(m=>m.LogLevelId,新建SelectList(Model.LogLevels,“pkLogLevelId”,“LogLevel”,Model.LogLevelId),新建{@class=“form control”,data\u toggle=“tooltip”,title=Html.DisplayNameFor(m=>m.LogLevelId)})
@Html.DropDownListFor(m=>m.LogSource,新建SelectList(Model.logsourcecode,“pkLogSourceCode”,“LogSource”,Model.LogSource),新建{@class=“form control”,data\u toggle=“tooltip”,title=Html.DisplayNameFor(m=>m.LogSource)})
@Html.TextBoxFor(m=>m.EntityId,新的{@class=“form control”,type=“number”,placeholder=Html.DisplayNameFor(m=>m.EntityId),data\u toggle=“tooltip”,title=Html.DisplayNameFor(m=>m.EntityId)})
@Html.TextBoxFor(m=>m.FromLogDate,新的{@class=“form control”,type=“DateTime”,placeholder=Html.DisplayNameFor(m=>m.FromLogDate),data\u toggle=“tooltip”,title=Html.DisplayNameFor(m=>m.FromLogDate)})
@Html.TextBoxFor(m=>m.ToLogDate,新的{@class=“form control”,type=“DateTime”,placeholder=Html.DisplayNameFor(m=>m.ToLogDate),data\u toggle=“tooltip”,title=Html.DisplayNameFor(m=>m.ToLogDate)})
提交
身份证件
来源
水平仪
实体ID
日志日期
消息
@foreach(Model.Logs中的var项)
{
@DisplayFor(modeleItem=>item.LogId)
@DisplayFor(modelItem=>item.LogSource)
@DisplayFor(modelItem=>item.LogLevel)
@DisplayFor(modelItem=>item.EntityId)
@DisplayFor(modelItem=>item.LogDateTime)
@DisplayFor(modelItem=>item.Message)
}
}

我也会发布控制器操作,除了这个应用程序比典型的模型、视图和控制器要复杂一点。如果有人需要更多信息,请告诉我。我可以更新OP.

您可以创建列表的局部视图(您的
@foreach(Model.Logs中的var项)
块),然后通过单击控制器的页码发出ajax请求。然后使用linq获取数据,如下所示:
.Skip((pageNumber-1)*pageSize)。取(pageSize)
,其中pageSize为10。然后,只需将该页面的部分视图和数据返回到ajax调用,并在DOM中替换该HTML。此外,看起来您的表单(
HTML.BeginForm
)中有一个无效的表单(
)。你应该删除第二种形式。@z好吧,我想这是我唯一的选择,但这不是唯一的选择。你可以一盎司渲染所有数据,然后用class
.page
将每10行列表组项包装在一个div中,然后将css样式写入
显示:none
all
.page
,然后编写一些javascript来显示与点击的页码(索引位置)对应的
。page
.有一些javascript插件可以为您处理所有前端工作。您只需点击页面上的
onPageClick
事件,进行ajax调用或显示/隐藏
.page
@using (Html.BeginForm("SearchGenericLogs", "Tools", FormMethod.Post)){


<div class="form-inline" style="height:50px; position:relative;">
    <form class="form-inline row">

        <div class="col-md-11">
            @Html.DropDownListFor(m => m.LogLevelId, new SelectList(Model.LogLevels, "pkLogLevelId", "LogLevel", Model.LogLevelId), new { @class = "form-control", data_toggle = "tooltip", title = Html.DisplayNameFor(m => m.LogLevelId) }) 

            @Html.DropDownListFor(m => m.LogSource, new SelectList(Model.LogSourceCodes, "pkLogSourceCode", "LogSource", Model.LogSource), new { @class = "form-control", data_toggle = "tooltip", title = Html.DisplayNameFor(m => m.LogSource) }) 

            @Html.TextBoxFor(m => m.EntityId, new { @class = "form-control", type = "number", placeholder = Html.DisplayNameFor(m => m.EntityId), data_toggle = "tooltip", title = Html.DisplayNameFor(m => m.EntityId) }) 

            @Html.TextBoxFor(m => m.FromLogDate, new { @class = "form-control", type = "DateTime", placeholder = Html.DisplayNameFor(m => m.FromLogDate), data_toggle = "tooltip", title = Html.DisplayNameFor(m => m.FromLogDate) }) 

            @Html.TextBoxFor(m => m.ToLogDate, new { @class = "form-control", type = "DateTime", placeholder = Html.DisplayNameFor(m => m.ToLogDate), data_toggle = "tooltip", title = Html.DisplayNameFor(m => m.ToLogDate) }) 
        </div>
        <div class="col-md-1 text-right">
            <button type="submit" class="btn btn-primary">Submit</button>
        </div>

    </form>
</div> 

<div class="list-group">
    <div class="row list-group-item list-group-item-heading divTableHeading">
        <div class="col-md-1"> ID </div>
        <div class="col-md-1"> Source </div>
        <div class="col-md-1"> Level </div>
        <div class="col-md-1"> Entity ID </div>
        <div class="col-md-2"> Log Date </div>
        <div class="col-md-6"> Message </div>
    </div>
    @foreach (var item in Model.Logs)
    {
    <div class="row list-group-item">
        <div class="col-md-1">@Html.DisplayFor(modelItem => item.LogId)  </div>
        <div class="col-md-1">@Html.DisplayFor(modelItem => item.LogSource)  </div>
        <div class="col-md-1">@Html.DisplayFor(modelItem => item.LogLevel) </div>
        <div class="col-md-1">@Html.DisplayFor(modelItem => item.EntityId)  </div>
        <div class="col-md-2">@Html.DisplayFor(modelItem => item.LogDateTime)  </div>
        <div class="col-md-6" style="word-break: break-word;">@Html.DisplayFor(modelItem => item.Message) </div>
    </div>
    }
</div>}