我已经获得了用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结构的服务是最好的选择,在应用程序而不是页面方法中很好地抽象和重用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top