我正在使用SharePoint应用程序页面的SharePoint 2016项目中工作。我们有一个单独的用户控件,用于捕获地址,并在应用程序的其他部分中使用它。
为了使用此功能,我将用户控件添加到了SharePoint应用程序页面中,如下所示。
<%@ Register TagPrefix="uc" TagName="StreetAndPostalAddress" Src="~/_controltemplates/15/Test.Features.WebParts/QAS/QASAddressStreetAndPostal.ascx" %>
并尝试在以下页面中使用此控件。
<uc:StreetAndPostalAddress id="locationAndPostalAddress" runat="Server" />
将这个控件添加到页面后,它立即给我一个错误,如下所示。我已经尝试过了,但无法找出线索。主要原因是同一控件正在另一页上工作。请分享您的想法以解决此问题。 谢谢。
我注意到页面使用了如下的更新面板
<asp:UpdatePanel ID="UP_Accordion" runat="server" UpdateMode="Conditional" ClientIDMode="Static" >
关于它的用途有什么想法?
第一个解决方案 它已在页面中定义为<%@ Control ClientIDMode =“ static”>,一旦将其更改为<%@ Control ClientIDMode =“ Predictable”>,此问题就得到解决。但是页面的功能不起作用。因为JavaScript / Jquery无法正常工作。哪个仍然无法解决我的问题:(
答案 0 :(得分:0)
最后,我弄清楚了为什么页面无法正常工作。它由一个手风琴和一个网格组成。而且我有一个要求重复相同的用户控件。由于ClientIDMode设置为static,因此出现了上述错误。我读了这篇文章以了解ClientIDMode的概念,并将其从页面中删除。使用下面的链接来学习它。
1)https://weblog.west-wind.com/posts/2009/nov/07/clientidmode-in-aspnet-40
一旦删除ClientIDMode,页面中的jquery似乎无法正常工作。我必须更改ID的jquery选择器,并使用模式匹配进行选择。更改后,页面即可正确呈现。
2)How to stop ASP.NET from changing IDs in order to use jQuery