c# - 用户控制 - (已存在具有相同键的条目)
问题描述
我正在开发一个使用 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 不工作。仍然没有解决我的问题:(
解决方案
最后我弄清楚了为什么页面不起作用。它由手风琴和网格组成。而且我需要重复相同的用户控件。由于设置为静态的 ClientIDMode 我有上述错误。我阅读了这篇文章以了解 ClientIDMode 的概念并将其从页面中删除。使用下面的链接来学习它。
1) https://weblog.west-wind.com/posts/2009/nov/07/clientidmode-in-aspnet-40
删除 ClientIDMode 后,页面中的 jquery 似乎无法正常工作。我必须更改 ID 的 jquery 选择器并使用模式匹配进行选择。一旦更改正确呈现的页面。
推荐阅读
- reactjs - React redux 状态未在生产构建中加载
- python - 更新 DynamoDB 中以 python 中的数字开头的属性
- flutter - 附加滚动控制器后如何调用事件
- postgresql - 如何仅针对表而不针对触发器和函数执行 pg_dump?
- c++ - C++ 创建一个输入流操纵器来屏蔽输出但保持所有输入不变
- html - 如何使用 jquery 获取 html 选择 > 选项标签自定义属性值?
- python - 删除 Pandas Dataframe 中的非等效多索引行
- docker - Boto3 超时连接到本地 dynamodb 但可以卷曲
- c# - 如何以不同方式设置 Blazor 组件的样式
- php - 为什么我的脚本可以工作,但它在控制台中显示语法错误?