为什么我不能在UpdateProgress div下更改标签?

时间:2015-04-20 15:29:08

标签: c# asp.net updateprogress

<asp:UpdateProgress ID="PreLoader" runat="server" ClientIDMode="Static">
    <ProgressTemplate>
        <div class="divWaiting">
            <asp:Image ID="preload" runat="server" ImageUrl="/Images/preloader.gif" />&nbsp
            <asp:Label ID="pmtProc1" runat="server" Text="Payment Processing ... Please Wait" ></asp:Label>
        </div>
    </ProgressTemplate>
</asp:UpdateProgress>

我似乎无法在代码隐藏中访问pmtProc1,为什么?

1 个答案:

答案 0 :(得分:1)

模板中的任何服务器端控件(例如<asp:Repeater><asp:GridView><asp:UpdateProgress>之类的内容)都不会直接包含在页面中。

在这种情况下,您需要在.FindControl控件本身上执行<asp:UpdateProgress> ...

例如......

Label pmtProc1 = (Label)PreLoader.FindControl("pmtProc1");
pmtProc1.Text = "New Text";

注意,这不会适用于可能出现多个模板的控件(例如<asp:Repeater><asp:GridView)...在这种情况下你需要找到有问题的item,然后找到该项目中的控件。

例如......

Label lbl = (Label)myRepeater.Items[0].FindControl("myLabel");