我正在寻找一种方式来传递DataTable的,以PartialView使用Controller操作.或者如果你知道更好的方式,我愿意接受建议.
控制器:
public DataTable GetDailyOutput()
{
Graph g = repository.Graphs.Where(p => p.GraphID == 2).FirstOrDefault();
DataTable dt = repository.GetGraphData(g.StoredProc);
return dt;
}
Run Code Online (Sandbox Code Playgroud)
视图:
<div id="dvCategoryResults">
@{Html.Partial("_GetDailyOutput", Html.Action("GetDailyOutput", "Graph"));}
</div>
Run Code Online (Sandbox Code Playgroud)
局部视图:
@model System.Data.DataTable
@using System.Data
<table>
<thead>
<tr>
@foreach (DataColumn col in Model.Columns)
{
<th>
@col.ColumnName
</th>
}
</tr>
</thead>
<tbody>
@foreach (DataRow row in Model.Rows)
{
<tr>
@foreach (DataColumn col in Model.Columns)
{
<td>
@row[col.ColumnName]
</td>
}
</tr>
}
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
我的下一步是使用Ajax调用更新表并刷新PartialView.
您可能需要使用AJAX.您可以将下面的代码放在事件处理程序中,例如按钮单击的处理程序.
使用JQuery的$.post() AJAX示例:
$.post('@Url.Content("~/Graph/_GetDailyOutput")', function( data ) {
$( "#dvCategoryResults" ).html( data );
});
Run Code Online (Sandbox Code Playgroud)
控制器动作:
public PartialViewResult _GetDailyOutput()
{
Graph g = repository.Graphs.Where(p => p.GraphID == 2).FirstOrDefault();
DataTable dt = repository.GetGraphData(g.StoredProc);
return PartialView(dt);
}
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以在不使用JavaScript的情况下最初渲染局部视图
<div id="dvCategoryResults">
@Html.Action("_GetDailyOutput", "Graph")
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3326 次 |
| 最近记录: |