0

问题总结:

我有一页有一个文本框和一个按钮。单击按钮时,它会读取一些 XML 并获取以下数据。

  • 获取要连接的数据库连接器列表。甲、乙、丙
  • 获取链接到每个连接器的查询列表。A[0,1,2], B[0], c[0, 1, 2, 4]

现在遍历每个数据库连接器、连接、运行每个查询、获取数据、创建动态控件和面板并以这种方式显示。

---A----
Gridview A[0] 结果
Gridview A[1] 结果
Gridview A[2] 结果

---B---
Gridview B[0] 结果

如果我尝试同步连接连接器,它可以正常工作并显示。页面冻结了几秒钟,但最后当所有操作完成时,它会正确显示。当任何连接器关闭时会发生问题。例子。如果 A 关闭,那么直到我们收到连接器超时消息,B 和 C 也会等待并且页面加载时间增加。

现在有一个业务需求,它应该异步运行,这意味着所有连接器应该像并行一样同时连接和查询。我试图通过使用WebService来实现这一点。但徒劳无功。创建并关闭 Div,然后填充网格/数据。由于 div 是动态创建的,我不知道如何将 gridviews 放置在这些 div 中。

我目前的逻辑是:

Loop through Connectors {
 Create <Div class="Container">
 Create <Div class="conLabel">Label</div>

 Loop through Queries for this connector {
   WebSevice _WS = new WebService();
   __WS.GetDataCompleted += new GetDataCompletedEventHandler(__WS_GetDataCompleted);
   __WS.GetDataAsync(Parameters Here);
 }
 Create </Div>
}

void __WS_GetDataCompleted(object sender, GetDataCompletedEventArgs e) {
  Get result here from e.Result
  Create New gridview and bind to it.      
}

它是这样显示的。

---A----
---B---

Gridview A[0] 结果
Gridview A[1] 结果
Gridview A[2] 结果

Gridview B[0] 结果

我不确定这是否是正确的方法。我对 WebService 很陌生。我如何在一些本身是动态创建的 div 中创建网格视图。

有人可以帮我找到任何其他方法来解决这个问题。

4

1 回答 1

0

我通过添加 ASP.NET 面板而不是将动态文字控件创建为 .

Loop through Connectors {
 Panel myPanel = new Panel();
 myPanel.ID = "UNIQUEID"; // Using this ID i am identifying the container

 Loop through Queries for this connector {
   WebSevice _WS = new WebService();
   __WS.GetDataCompleted += new GetDataCompletedEventHandler(__WS_GetDataCompleted);
   __WS.GetDataAsync(Parameters Here);
 }
}
于 2012-08-17T10:15:37.930 回答