日期:2014-05-17  浏览次数:20537 次

UpdatePanel更新后无法赋值到label
文本框TextBox1改变,lable1跟着改变。另还有TextBox2值改变,lable2也跟着变。lable2的值是根据TextBox1和TextBox2的值通过数据库获取。现在发现当更改TextBox1值,TextBox2不变,是可以获取到数据的,但是lable2的值没有跟着更新,还是显示之前的数据。后台代码断点测试到lable2=。。。,是跟原来的值不同的了,但是页面显示的值还是原来的。我是TextBox1和lable1分别使用一个UpdatePanel,然后TextBox2和lable1用一个人UpdatePanel。

------解决方案--------------------
取到了值,但是没显示出来,那么就是你的updatenle没有刷新...仔细检查一下
------解决方案--------------------
一个UpdatePanel只能控制里面的东西
------解决方案--------------------
是你updatepanel设置的问题,仔细检查一下,值改变了,但是页面没有改变就只有这个问题,看看事件是否正确设置
C# code

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
                    <ContentTemplate>
                    &nbsp;<asp:TextBox ID="txtobjNumber" runat="server" ReadOnly="true"></asp:TextBox>
                    </ContentTemplate>
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="drpXMName" EventName="SelectedIndexChanged" />
                    </Triggers>
                </asp:UpdatePanel>
再者,能不用updatepanel控件的时候尽量不要用这个控件,产生的垃圾代码很多,而且每次更新都会
刷新页面,最好的还是用js或者JQuery方法吧

------解决方案--------------------
TextBox放外面,UpdatePanel里只放Label呢?
设置UpdatePanel的触发事件为TextBox的文本变更事件

<Triggers>
<asp:AsyncPostBackTrigger ControlID="TextBox1" EventName="TextChanged" />
</Triggers>