0

我有一个启动第二个线程的网络表单,当我启动新线程时,我在网络表单上有一个 DropDownList,选择值为 1,线程函数使用获取值

((DropDownList)Page.FindControl("MLprice2_" + _lineRef)).SelectedItem.Value)

这些工作得很好,当我将 DropDownList 值更改为 5 时,问题就来了

((DropDownList)Page.FindControl("MLprice2_" + _lineRef)).SelectedItem.Value)

仍然获得价值1而不是5

请帮忙

4

1 回答 1

0

如果您在网页的生命周期中启动第二个线程,那么在第二个线程完成处理之前,网页可能已经完成了它的生命周期。该网页被阻止被垃圾收集,因为它被第二个线程以某种方式引用(因为您正在那里更新网页)。但是客户端可能已经收到了渲染的网页,因此第二个线程的结果不会到达客户端。它将在服务器(内存中)上更新,但不会在客户端上更新。

我认为有必要采取不同的方法。您必须进行一些额外的异步通信和/或页面更新(想到 ajax 跳转)才能让呈现的页面接收到将下拉列表设置为 5 的信号。

于 2012-07-04T05:59:37.093 回答