更新面板 - ScriptManager必须出现在需要它的任何控件之前

时间:2015-10-10 07:14:47

标签: c# asp.net

我尝试在我的aspx表单中放置一个更新面板,但它一直显示此错误。 ScriptManager必须出现在任何需要它的控件之前

这是我的aspx

<form id="Form1" runat="server" class="form-horizontal">

    <div class="col-lg-6">

        <%--<asp:Panel id="pnlExisting" runat="server">
             <div class="alert alert-danger" role="danger">
               <i class="glyphicon glyphicon-exclamation-sign"></i> <asp:Label ID="recordCheck" runat ="server"> </asp:Label>
             </div>
        </asp:Panel>--%>


        <div class="form-group">
            <label class="control-label col-lg-4">Project</label>
            <div class="col-lg-8">
                <asp:DropDownList ID="ddlProjects" runat="server" class="form-control" AutoPostBack="true" 
                    onselectedindexchanged="ddlProjects_SelectedIndexChanged" /><br />


            </div>
        </div>

        <div class="form-group">
            <label class="control-label col-lg-4">Project Code</label>
            <div class="col-lg-8">
                <asp:Textbox ID="txtProjectCode" runat="server" class="form-control" required />
            </div>
        </div>




       <%-- <div class="form-group">
            <label class="control-label col-lg-4">Price</label>
            <div class="col-lg-8">
                <asp:Textbox ID="txtPrice" runat="server" class="form-control" Textmode="Number" required />
            </div>
        </div>--%>

      <%--  <div class="form-group">
            <label class="control-label col-lg-4">Status</label>
            <div class="col-lg-8">
                <asp:Textbox ID="txtStatus" runat="server" class="form-control" required />
            </div>
        </div>--%>


    </div>

    <asp:UpdatePanel ID="upMaterialsList" runat="server">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="lvMaterialsList" EventName="PagePropertiesChanging" />
    </Triggers>
    <ContentTemplate>
    <table class="table table-hover">
            <thead>

                <th>Material</th>
                <th>Quantity</th>
                <th>Status</th>
                <th>Date Added</th>
                <th>Date Modified</th>
                <th></th>

            </thead>

            <tbody>
                <asp:ListView ID="lvMaterialsList" runat="server" ondatabound="lvMaterialsList_DataBound" 
                    onpagepropertieschanging="lvMaterialsList_PagePropertiesChanging"  OnItemCommand="lvMaterialsList_ItemCommand">

                    <ItemTemplate>
                        <tr>

                            <td><%# Eval("SupplierProduct")%></td>
                            <td><%# Eval("Quantity") %></td>
                            <td><%# Eval("Status") %></td>
                            <td><%# Eval("DateAdded", "{0: MMMM dd, yyyy}") %></td>
                            <td><%# Eval("DateModified", "{0: MMMM dd, yyyy}") %></td>

                            <td>
                            <asp:Label ID="ltReqMat" runat="server"  Text='<%# Eval("ReqMatID") %>' Visible="false"  />

                                        </td>
                                    <td>
                                    <asp:LinkButton Text="Approved" class="btn btn-success " ID="lbtnApproved" runat="server" 
                                    CommandName="Approve" > </asp:LinkButton> 
                                     <asp:LinkButton Text="Decline" class="btn btn-warning " ID="lbtnDecline" runat="server" 
                                    CommandName="Decline" > </asp:LinkButton>        
                                    </td> 
                        </tr>
                    </ItemTemplate>

                    <EmptyDataTemplate>
                        <tr>
                            <td colspan="12"><h2 class="text-center">No records found.</h2></td>


                            </td>
                        </tr>
                    </EmptyDataTemplate>
               </asp:ListView>
            </tbody>
        </table>
         <div class="col-lg-12">

                    <center>
                    <asp:Button ID="btnReturn" runat="server" class="btn btn-default" Text="Back" 
                    PostBackUrl="Default.aspx" formnovalidate />
                    </center>


            </div>

          <br />
                <center>
                    <asp:DataPager ID="dpMaterialsList" runat="server" PageSize="10" PagedControlID="lvMaterialsList">
                        <Fields>
                            <asp:NumericPagerField ButtonType="Button"
                                NumericButtonCssClass="btn btn-default"
                                CurrentPageLabelCssClass="btn btn-success"
                                NextPreviousButtonCssClass="btn btn-default" />
                        </Fields>
                    </asp:DataPager>
                 </center>
                 </ContentTemplate>
         </asp:UpdatePanel>


</form>

我想知道它为什么不能正常工作

2 个答案:

答案 0 :(得分:0)

您必须在内容页面或母版页面中包含ScriptManager控件才能启用ASP.NET AJAX功能。因此,在您的母版页中,您可以将此控件放在form标记之后,并确保将其放在任何ContentPlaceHolder控件之前: -

<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
    </asp:ContentPlaceHolder>
</form> 

通过此,将主页面设置为上述主页的所有内容页面将自动使用此ScriptManager

除此之外,如果您想要在任何内容页面中包含任何特定的脚本引用,那么您可以使用ScriptManagerProxy控件,该控件在运行时将组合{{1}的属性}和ScriptManager

根据ASP.NET AJAX: -

  

ScriptManager - 使脚本资源可用的服务器控件   到浏览器,包括Microsoft AJAX Library和   功能,支持部分页面呈现。

     

ScriptManagerProxy - 启用嵌套组件的服务器控件   如果页面已包含脚本和服务引用,则添加脚本和服务引用   ScriptManager控件。

答案 1 :(得分:-1)

在页面的ScriptManager标记下方添加<Form>个标记。

<asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>