我有一种情况,我正在使用 Gizmox VWG 6.4 和一个 HTML 页面来展示一些 D3js 可视化。
目前我正在生成没有问题的数据。最终结果是我的 D3js 应用程序具有正确格式的 JSON 对象。我需要做的是以某种方式在 Gizmox VWG 中托管 HTML(可能是通过 HtmlBox??),然后以某种方式使 JSON 对象可用于 HtmlBox,以便 HTML/JS 应用程序可以读取它?理想情况下不必将 JSON 存储在磁盘上?
任何想法,如果这甚至可能?
谢谢。
我有一种情况,我正在使用 Gizmox VWG 6.4 和一个 HTML 页面来展示一些 D3js 可视化。
目前我正在生成没有问题的数据。最终结果是我的 D3js 应用程序具有正确格式的 JSON 对象。我需要做的是以某种方式在 Gizmox VWG 中托管 HTML(可能是通过 HtmlBox??),然后以某种方式使 JSON 对象可用于 HtmlBox,以便 HTML/JS 应用程序可以读取它?理想情况下不必将 JSON 存储在磁盘上?
任何想法,如果这甚至可能?
谢谢。
当然,这可以使用 Visual WebGUI 网关来提供 HtmlBox。假设您有一个带有 HtmlBox 的表单,您可以执行以下操作:
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Web;
using Gizmox.WebGUI.Common;
using Gizmox.WebGUI.Common.Gateways;
using Gizmox.WebGUI.Forms;
namespace VisualWebGuiApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
NameValueCollection NVC = new NameValueCollection();
NVC.Add("JsonParm1", "value1");
NVC.Add("JsonParm2", "value2");
this.htmlBox1.Url = (new GatewayReference(this, "generateJSON", NVC)).ToString();
}
protected override Gizmox.WebGUI.Common.Interfaces.IGatewayHandler ProcessGatewayRequest(Gizmox.WebGUI.Hosting.HostContext objHostContext, string strAction)
{
if (strAction == "generateJSON")
{
// make sure no caching takes place.
objHostContext.Response.Expires = -1;
objHostContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
objHostContext.Response.CacheControl = "no-cache";
objHostContext.Response.AddHeader("Pragma", "no-cache");
// Get the parameters from the gateway reference
string strParm1 = objHostContext.Request["JsonParm1"].ToString();
string strParm2 = objHostContext.Request["JsonParm2"].ToString();
// build your output and set content type
objHostContext.Response.ContentType = "text/html";
objHostContext.Response.Write("the data you want to write");
objHostContext.Response.Flush();
return null;
}
else
return base.ProcessGatewayRequest(objHostContext, strAction);
}
}
}
网关实际上是 VWG 的一个非常强大的功能。看这里
希望这会有所帮助,帕利