把一个 Label1 放到 UpdatePanel 里面,label = (Label)ctrl.FindControl("Label1");调试提示:label 为 null,运行出错:未将对象引用设置到对象的实例。但是只要把 Label1 拖到 UpdatePanel 外面,是没问题的!大家帮帮忙吧。

解决方案 »

  1.   

    <script runat="server" language="vb">
    Sub ttk(sender as object,e as system.eventargs)
    Dim lb1 as label
    lb=page.findcontrol("label1")
    lb.text="你好,这是updatepanel里的label"
    Eend sub
    </script><form runat="server">
    <asp:Updatepanel id="update1" ChildrenAsTriggers="true" runat="server" UpdateMode="Always">
    <contenttemplate>
    <asp:label runat="server" ID="label1"/>
       <cc1:popupwin id="ppw" style="Z-INDEX: 105; right: 0px; POSITION: absolute; TOP: 128px" runat="server" width="230px" height="150px" windowsize="300, 200" windowscroll="False" dockmode="BottomLeft" colorstyle="Blue" gradientdark="210, 200, 220" textcolor="0, 0, 3" shadow="125, 90, 160" lightshadow="185, 170, 200" darkshadow="128, 0, 102" visible="False" showlink="True" OffsetX="0">
    </cc1:popupwin>
    <asp:Timer id="tm1" runat="server" enabled="true" interval="10000" ontick="ttk"></asp:Timer>
    </contenttemplate>
    </asp:Updatepanel>
    </form>
      

  2.   

    他会每隔10秒更新label1的内容,你也可以把它改成
    Sub ttk(sender as object,e as system.eventargs)
    Dim lb1 as label
    lb=page.findcontrol("label1")
    lb.text="你好,这是updatepanel里的label"
    Eend subtoSub ttk(sender as object,e as system.eventargs)
    Dim lb1 as label
    lb=page.findcontrol("label1")
    lb.text=now()
    Eend sub
      

  3.   

    Updatepanel 是要放一个
    在body中<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

    控件才能使用
      

  4.   

    UpdatePanel控件熟悉?我也不是很熟悉!菜鸟 !
    下面的你参考!参考 
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                <ContentTemplate>
                    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="确定" />
                    <asp:Button ID="Button2" runat="server" Text="取消" OnClick="Button2_Click" />
                   
                    <asp:Label runat="server" ID="InputTimeLabel"><%=DateTime.Now %></asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
      

  5.   

    linjone()说得对
    刚才忘记放<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
      

  6.   

    这个才对,不好意思<script runat="server" language="vb">
    Sub ttk(sender as object,e as system.eventargs)
    Dim lb1 as label
    lb=page.findcontrol("label1")
    lb.text=now()
    Eend sub
    </script><form runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <asp:Updatepanel id="update1" ChildrenAsTriggers="true" runat="server" UpdateMode="Always">
    <contenttemplate>
    <asp:label runat="server" ID="label1"/>
    <asp:Timer id="tm1" runat="server" enabled="true" interval="10000" ontick="ttk"></asp:Timer>
    </contenttemplate>
    </asp:Updatepanel>
    </form>
      

  7.   

    我又搞了一下,
    条件:1 个 aspx 页面,1 个ascx 用户控件
    三种情况:
    1、把 ScriptManager Updatepanel 同时放在 aspx 页面,ascx 拖进 Updatepanel 里,运行没问题。FindControl 成功找到。2、把  ScriptManager Updatepanel 同时放在 ascx 页面,运行出错,不能把控件 FindControl 出来3、把 ScriptManager 放在 aspx 页面 Updatepanel 放在 ascx 页面,运行出错,错误同 2 难道真的只能用第一种方法?要把整个 ascx 放进去?
      

  8.   

    搞得也太复杂了吧,试一下用masterpage吧