2010-10-05 65 views
1

我在<asp:UpdatePanel>中有几个下拉列表和文本框,在选择<asp:GridView>中的一个项目后,应该让我编辑一些细节。网格不在updatepanel内。无法更新asp:TextBox内部的.Text属性:UpdatePanel

从的UpdatePanel .Load()方法,我改变。文本的几<asp:Label><asp:TextBox>,我设置的一些<asp:DropDownList>的.SelectedValue。

所有标签都会正确更新,但<asp:TextBox>和.SelectedValue的的新.Text在HTML输出中不可见。在设置新值后,我可以看到它已经从Visual Studio中设置为QuickWatch

这是什么原因造成的,我该如何解决我的问题?

我使用Visual Studio 2008与.net 3.5

+0

你在哪里(在哪个事件中)更新文本框/下拉菜单? – VinayC 2010-10-05 08:57:22

+0

我的猜测是,您可能在页面生命周期的早期设置了控件,并且值从请求中被覆盖。尝试在Page_Load事件中设置值。 – VinayC 2010-10-05 09:05:42

+0

我更新从 tkalve 2010-10-05 09:58:50

回答

0

老兄,只需在UpdatePanels PreRender()方法中设置.Text即可。它会解决你的问题。

......感谢所有的帮助,伙计们。 ;)

0

我认为这个问题是,当你选择在<asp:GridView>没有一个项目被回发到服务器? autopostback是否开启?

此外,只要在<asp:GridView>中进行选择,您就需要设置更新面板触发器以回发(因此获取新值)。

请留言,如果我得到了棒的错误结束。

+0

嗨,我明白你怎么会这么想。我使用__doPostBack从我自己的javascript发回服务器。如果Load方法没有运行,也不会被更新,对吗? – tkalve 2010-10-05 08:38:38

+0

你是否说Load方法发生后,你点击了GridView? – 2010-10-05 08:45:02

+0

当我点击GridView时,UpdatePanel被更新,并且运行Default.aspx.cs中的代码函数panelDetails_Load。我的UpdatePanel引用了panelDetails_Load。 – tkalve 2010-10-05 08:58:27