用户控制-(具有相同键的条目已存在)

时间:2019-08-09 04:27:16

标签: c# .net sharepoint

我正在使用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" >

关于它的用途有什么想法?

enter image description here

第一个解决方案 它已在页面中定义为<%@ Control ClientIDMode =“ static”>,一旦将其更改为<%@ Control ClientIDMode =“ Predictable”>,此问题就得到解决。但是页面的功能不起作用。因为JavaScript / Jquery无法正常工作。哪个仍然无法解决我的问题:(

1 个答案:

答案 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