【问题标题】:Update Panel - The ScriptManager must appear before any controls that need it更新面板 - ScriptManager 必须出现在任何需要它的控件之前
【发布时间】:2015-10-10 07:14:46
【问题描述】:

我尝试在我的 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>

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

【问题讨论】:

  • 您将ScriptManager 控件放在页面的什么位置?
  • @RahulSingh 我应该把它放在母版页的某个地方
  • 您尚未将它包含在母版页或内容页的任何位置?
  • 部分回发是更新面板的一个功能,所以需要一个脚本管理器,你可以参考这里的解释。 stackoverflow.com/questions/14169313/…

标签: c# asp.net


【解决方案1】:

在页面的&lt;Form&gt; 标记下方添加ScriptManager 标记。

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

【讨论】:

  • @Downvoter - 当您对任何答案投反对票时,请发表评论!我在这里找不到任何理由。
【解决方案2】:

您必须在内容页或母版页中包含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 控件,该控件在运行时将结合ScriptManager 和@987654328 的属性@。

根据 ASP.NET AJAX:-

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

ScriptManagerProxy - 启用嵌套组件的服务器控件 如果页面已经包含一个脚本和服务引用 ScriptManager 控件。

【讨论】:

    猜你喜欢
    • 2012-11-08
    • 2010-12-01
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    相关资源
    最近更新 更多