ASP.NET - 带有javascript代码的modalpopupExtender没有弹出

本文关键字:modalpopupExtender 代码 NET 带有 javascript ASP | 更新日期: 2023-09-27 18:34:50

PROCESS

我在系统中有一个函数,其中 ajax modalpopupextender 用于加载带有数据的网格视图,用户可以从中过滤和选择数据。过滤具有使用 javascript 的按键事件,以实现快速性能目的。每次用户使用下拉列表并选择"每个位置"时,模态都会;自动显示。

为了进一步优化系统,我使用了 ajax 的控制包选项,以避免创建数百个外部 javascript 文件,但它有效,但仅限于没有 JAVASCRIPT 或按键事件功能的模式弹出窗口。 多亏了这个 Ajax 控件工具包加载了太多的脚本资源

问题

在隔离问题以获取详细问题后,我注意到这是因为按键的javascript导致模态不再显示,因为使用另一个没有javascript的模态进行测试,它正在工作。

这是代码

用于按键过滤的 JAVASCRIPT 函数

function filter2(phrase, _id) {
    var words = phrase.value.toLowerCase().split(" ");
    var table = document.getElementById(_id);
    var ele;
    for (var r = 1; r < table.rows.length; r++) {
        ele = table.rows[r].innerHTML.replace(/<[^>]+>/g, "");
        var displayStyle = 'none';
        for (var i = 0; i < words.length; i++) {
            if (ele.toLowerCase().indexOf(words[i]) >= 0)
                displayStyle = '';
            else {
                displayStyle = 'none';
                break;
            }
        }
        table.rows[r].style.display = displayStyle;
    }
}

MODALPOPUPEXTENDER 宣言

    <asp:ModalPopupExtender  ID="ModalPopupExtenderLocation" runat="server" TargetControlID="btnSelectLocation" PopupControlID="pnlModalLocation"
    CancelControlID="btnclose" BackgroundCssClass="ModalBackground"></asp:ModalPopupExtender>
    <asp:Panel ID="pnlModalLocation" runat="server"  CssClass="ModalPanel" style="display:none"   >
    <div class="ModalWindow" >
                  <div class="ModalHeader">
                         <h2>Choose Location</h2>
                         <a href="#close" title="Close" class="close" id="btnclose">X</a>
                  </div>

                  <div class="ModalBody">
                        <asp:Panel ID="pnlSearchLoc" runat="server" >
                                Location: 

          <input id="txtTerm" name="txtTerm" onkeyup="filter2(this, '<%=grdLocation.ClientID %>')" type="text" autofocus="autofocus"  size="40">
                               <br /><br />

                              </asp:Panel> 
                             <div class="ModalBodyGridview">
                                        <asp:GridView ID="grdLocation"  runat="server" AutoGenerateColumns="false" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" DataSourceID="SqlDataSource2" ForeColor="Black" GridLines="Vertical" Width="420px" OnSelectedIndexChanged="grdLocation_SelectedIndexChanged" ShowHeaderWhenEmpty="True" EmptyDataText="No records Found" >
                                        <AlternatingRowStyle BackColor="White" />
                                        <Columns>
                                            <asp:CommandField ShowSelectButton="True" />
                                            <asp:BoundField DataField="Location Num" HeaderText="Location Num" SortExpression="Location Num" />
                                            <asp:BoundField DataField="Location Name" HeaderText="Location Name" SortExpression="Location Name" />
                                        </Columns>
                                        <FooterStyle BackColor="#CCCC99" />
                                        <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
                                        <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
                                        <RowStyle BackColor="#F7F7DE" />
                                        <SelectedRowStyle BackColor="green" Font-Bold="True" ForeColor="White" />
                                        <SortedAscendingCellStyle BackColor="#FBFBF2" />
                                        <SortedAscendingHeaderStyle BackColor="#848384" />
                                        <SortedDescendingCellStyle BackColor="#EAEAD3" />
                                        <SortedDescendingHeaderStyle BackColor="#575357" />
                                    </asp:GridView>
                                    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:RPSMSConnectionString %>" SelectCommand="spSearchLoc" SelectCommandType="StoredProcedure"></asp:SqlDataSource>
                               </div>
                      </div>
   </div> 
  </asp:Panel>

以及带有控制捆绑包的工具脚本管理器定义

   <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"
 CombineScripts="true" ScriptMode="Release"  EnableCdn="true" >
          <ControlBundles>
               <ajaxToolkit:ControlBundle Name="ModalBundle" />
          </ControlBundles>
            </asp:ToolkitScriptManager>

我测试的是,当 ScriptMode="Release"> 作为属性存在时,modalpop 不起作用,但是当我删除它时,它确实已经工作了,但控制捆绑包停止了完全工作。

有没有办法解决这个问题? 我可以在哪里零售所需的所有功能(来自 Ajax 的模态弹出显示、按键事件和控制包(

任何帮助将不胜感激。谢谢

ASP.NET - 带有javascript代码的modalpopupExtender没有弹出

移除工具脚本管理器中的 EnableCDN 属性。这就是问题的答案。经过一系列的试验和错误,发现该属性导致带有javascript的modalpopup无法正确弹出。

相关文章:
  • 没有找到相关文章