我从控制器接收一个 DataTable 对象,并使用它在视图中显示一个表,代码如下:
@model System.Data.DataTable
<table width="65%">
<tr>
<th>USERNAME</th>
<th>ROLE</th>
<th>ACTIVE</th>
<th></th>
<th></th>
</tr>
@foreach(DataRow row in Model.Rows)
{
<tr>
@foreach (DataColumn column in Model.Columns)
{
<td>@row[column]</td>
}
<td>@Html.ActionLink("Edit", "Edit", new { id = row[0] })</td>
<td>@Html.ActionLink("Delete", "Delete",new{id=row[0]})</td>
</tr>
}
</table>
我想添加分页,这样当表格中填充了大量数据时,用户不必长时间向下滚动。这是一个基本的学习练习,我在相关控制器操作方法中对所有数据库 SQL 调用进行了硬编码。我没有使用像 NHibernate 这样的 ORM,所以理想情况下我正在寻找一种仅在服务器端使用 DataTable 对象的解决方案。
这是来自控制器的代码(删除了数据库细节):
public ActionResult Index()
{
string oradb = "Data Source = XXXXXXXXXXXXXXXXXXX";
OracleConnection conn = new OracleConnection(oradb);
conn.Open();
string sql = " SELECT USER_ROLE_ID, USERNAME, ROLE, ACTIVE_IND FROM LD_USER_ROLE";
OracleDataAdapter adapter = new OracleDataAdapter(sql, conn);
DataTable dt = new DataTable();
adapter.Fill(dt);
conn.Close();
return View(dt);
}