PROCESS
我在系统中有一个功能,其中 ajax modalpopupextender 用于加载网格视图,其中包含用户可以过滤和选择的数据。过滤使用 javascript 进行按键事件,以达到快速性能目的。每次用户使用下拉列表并选择“每个位置”时,模态将;自动显示。
为了更好地优化系统,我使用了ajax的控件包选项,以避免创建数百个外部javascript文件,它可以但,只能在没有JAVASCRIPT的情况下弹出模块或KEYPRESS EVENT FEATURE 。感谢这个Ajax Control Toolkit is loading too many script resources
问题
在隔离问题得到一个详细的问题之后,我注意到这是因为按键的javascript导致模式不再显示,因为使用其他模态WITH NO JAVASCRIPT进行测试,它正在工作。
这里是代码
用于KEYPRESS过滤的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>
AND TOOLSCRIPTMANAGER使用控制包进行定义
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"
CombineScripts="true" ScriptMode="Release" EnableCdn="true" >
<ControlBundles>
<ajaxToolkit:ControlBundle Name="ModalBundle" />
</ControlBundles>
</asp:ToolkitScriptManager>
我测试的是当 ScriptMode =“Release”作为属性出现时,modalpop不起作用,但是当我删除它时,它确实可以工作但是控制包完全停止工作。
有没有办法解决这个问题?我可以在哪里零售所需的所有功能(Modalpopup显示,来自ajax的按键事件和控制包)
任何帮助都会受到赞赏。感谢
答案 0 :(得分:0)
删除toolscriptmanager中的EnableCDN属性。这就是问题的答案。经过一系列的反复试验,发现该属性导致modalpopup与javascript无法正常弹出。