我已经获得了用html和javascript(通过ExtJS)编写的网格的原型/模型,我现在需要在ASP.net Web应用程序中实现.有没有人有关于如何将数据传递到网格(特别是GroupingStore)的任何指针.
我宁愿没有大量的Web服务或辅助页面返回XML / JSON,所以如果有办法使用客户端回调或页面方法(你不能告诉我我不是特别熟悉 – 流行语宾果!)或某些人,这将是首选.
请不要使用jQuery,内置ASP.net网格或任何其他UI框架的建议. ExtJS网格的使用是由权力强制执行的,所以这就是我正在使用的网格,无论好坏:)
解决方法
这是一种低技术解决方案.它不需要使用Web服务或任何其他附加技术.
步骤1
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 example所示.将数据存储url:设置为query.aspx页面的网格,并包含相应的查询字符串参数.
您还需要为网格设置列,再次显示在ExtJs示例中.
另外…
我最近看了Coolite samples时给人留下了深刻的印象.他们是ExtJS的合作伙伴,提供了一个很好的ASP.NET& ExtJS经验.不,我不为他们工作:)我没有尝试他们的网格,但它可能是无痛的(付出代价).