将数据从ASP.net返回到ExtJS网格
-
03-07-2019 - |
题
我已经获得了用html和javascript(通过ExtJS)编写的网格的原型/模型,我现在需要在ASP.net Web应用程序中实现。有没有人有关于如何将数据传递到网格(特别是GroupingStore)的任何指针。
我宁愿没有大量的Web服务或帮助页面返回XML / JSON,所以如果有办法使用客户端回调或页面方法(你不能告诉我我也不是特别熟悉 - 流行语宾果游戏!)或某些,这将是首选。
请不要使用jQuery,内置ASP.net网格或任何其他UI框架的建议。 ExtJS网格的使用是由权力强制执行的,所以这就是我正在使用的网格,无论好坏:)
解决方案
这是一种低技术解决方案。它不需要使用Web服务或任何其他附加技术。
第1步
有一个ASPX页面需要一个参数,并调用如下:
http://mysite.com/query.aspx?sql=select * from orders where status = 'open'
第2步
在后面的代码中,做一些像这样的事情
void Page_Load(object sender, EventArgs e)
{
Response.ContentType="text/json";
DataTable contents = ExecuteDataTable(Request["sql"]);
Response.Write( JRockSerialize( contents ) );
Response.End();
}
您可以使用 JRock 将数据表序列化为JSON。 恕我直言,这给了最干净的JSON。
因此,将 DataTable
转换为JSON排序......
警告:这显然是一个简单的例子。您不应该在查询字符串上传递SQL,因为它不安全(您可以使用命名查询和参数)。
第3步
在ExtJS代码中,使用Json数据存储区创建一个网格,如下所示 Ext示例。使用适当的查询字符串参数将数据存储 url:
设置为query.aspx页面的数据存储。
您还需要为网格设置列,再次显示在ExtJs示例中。
<强>另外... 强>
最近我看了 Coolite样本后,给我留下了深刻的印象。他们是ExtJS的合作伙伴,提供了一个很好的ASP.NET&amp; ExtJS经验。不,我不为他们工作:)我没有尝试他们的网格,但它可能是无痛的(付出代价)。
其他提示
我相信一个简单地为你的页面返回json结构的服务是最好的选择,在应用程序而不是页面方法中很好地抽象和重用。