我需要将使用SignalR的Kendo Grid与具有动态列数的Datatable绑定。我怎样才能做到这一点。我可以直接将Hub中的DataTable对象传递给View吗?我的代码如下: 查看:如何使用SignalR将具有动态列数的数据表绑定到Kendo UI Grid?
@model System.Data.DataTable
<script>
var TestGridHub = {};
$(function() {
TestGridHub = $.connection.TestGridHub;
})
</script>
<table><tr><td>
@(Html.Kendo().Grid(Model)
.Name("TestGrid")
.Columns(columns =>
{
foreach (System.Data.DataColumn col in DataTable.Columns)
{
columns.Bound(col.ColumnName).Title("Name")
.ClientTemplate("#=name#");
}
})
.DataSource(dataSource => dataSource
.SignalR()
.PageSize(10)
.Transport(tr => tr
.Promise("hubStart")
.Hub("TestGridHub")
.Client(c => c.Read("TestGrid_Read"))
.Server(s => s.Read("TestGrid_Read"))
)
.Schema(schema => schema
.Model(m =>m.Id(p => p.Id))
))
)
</td></tr></table>
枢纽:
public DataTable TestGrid_Read()
{
var queryResult = TestRepository.TestGrid_Read_Dynamic();
return queryResult;
}
库:
public DataTable TestGrid_Read_Dynamic()
{
using (SqlConnection connection = new SqlConnection(dbContext.Database.Connection.ConnectionString))
{
using (SqlCommand cmd = new SqlCommand("SP_TestGrid", connection))
{
var dt = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.SelectCommand.CommandType = System.Data.CommandType.StoredProcedure;
adapter.SelectCommand.Parameters.Add(new SqlParameter("@Id", GlobalVaribleDeclarations.Id));
adapter.Fill(dt);
return dt;
}
}
}
谢谢!你可以用代码示例来解释这个解决方案吗? – giparekh
@giparekh我更新了我的帖子,提供了更多详细信息 – Sneakster