问题总结:
我有一页有一个文本框和一个按钮。单击按钮时,它会读取一些 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 中创建网格视图。
有人可以帮我找到任何其他方法来解决这个问题。