3

我得到了一个用 html 和 javascript(通过 ExtJS)编写的网格的原型/模型,我现在需要在 ASP.net Web 应用程序中实现它。有没有人知道如何将数据传递到网格(特别是 GroupingStore)。

我宁愿不要有大量的 Web 服务或返回 XML/JSON 的帮助页面,所以如果有办法使用客户端回调或页面方法(你能不能告诉我我也不是特别熟悉 - 流行语宾果游戏!)或somesuch,那将是首选。

请不要推荐我使用 jQuery、内置的 ASP.net 网格或任何其他 UI 框架。ExtJS 网格的使用是由权力授权的,所以这就是我正在使用的网格,无论好坏 :)

4

2 回答 2

3

我相信为您的页面简单地返回 json 结构的服务是最好的选择,它很好地抽象和可跨应用程序而不是页面方法重用。

于 2008-10-21T09:23:36.030 回答
1

这是一个低技术的解决方案。它不需要使用 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 和 ExtJS 体验。不,我不为他们工作 :) 我没有尝试过他们的网格,但它可能是无痛的(有代价的)。

于 2008-10-21T10:05:42.873 回答