在ASP.NET中几个动态创建的Div中,从WebService异步填充数据?

时间:2012-08-11 11:21:04

标签: asp.net web-services gridview dynamic asynchronous

问题摘要:

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

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

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

  

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

     

--- ---乙
  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.      
}

它显示如下。

  

---甲----
  --- ---乙

     

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

     

Gridview B [0]结果

我不确定这是否是正确的做法。我是WebService的新手。如何在某个div中创建gridview,它本身是动态创建的。

有人可以帮助我找到解决此问题的其他方法。

0 个答案:

没有答案