gpt4 book ai didi

sharepoint-2010 - 嵌套用户控件在可视 Web 部件中不起作用

转载 作者:行者123 更新时间:2023-12-04 05:58:18 24 4
gpt4 key购买 nike

尽管我尽了最大的努力,但我的雇主仍要求我使用 Sharepoint 开发一个 Web 应用程序,而不是一些有用的东西。

我在 Visual Studio 2010 的 Sharepoint 项目中将用户控件嵌入到 Visual Web 部件中时遇到问题。我正在使用以下步骤(请注意,此代码只是我所拥有的内容的概要 - 因为我的真实代码目前包含足够的诅咒让我终身禁止使用 StackOverflow 的话):

  • 创建一个新的空 Sharepoint 项目。
  • 将用户控件添加到项目(位于 ControlTemplates 中),名为 MyControl.ascx

  • MyControl.ascx:
    <asp:TextBox runat="server" ID="txtStuff" />

    MyControl.ascx.cs:
    public class MyControl : UserControl 
    {
    public int Property { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
    txtStuff.Text = "I hate you sharepoint";
    }
    }
  • 将可视 Web 部件添加到项目中,MyWebPart.ascx

  • MyWebPart.ascx
    <%@ Register TagPrefix="c" TagName="MyControl" src="~/_controlTemplates/MyControl" %>
    <c:MyControl runat="server" ID="mycontrol" />

    当我到达这一点时,我没有得到 MyControl 的任何智能感知,很可能是因为 VS 不知道 .ascx 文件的存在。我还在控件名称下看到绿色波浪线,让我知道它不存在。但是,我仍然可以将项目部署到我的 Sharepoint 服务器本身,并且一切正常。

    但是,当我需要与控件本身进行任何有用的交互时,这就会分崩离析:

    MyWebPart.ascx.cs
    protected void Page_Load(object sender, EventArgs e) {
    mycontrol.Property = 1234;
    }

    这会产生错误“System.Web.UI.UserControl 不包含'Property'的定义并且没有扩展方法......'。designer.cs 文件确实将控件指定为UserControl,而不是它的真实类型。

    由于这现在会产生构建错误,因此我无法将项目部署到 Sharepoint 服务器,因此我无法真正解决这个智能感知问题。

    我发现这是非常不一致的行为;有时会出现智能感知,具体取决于项目当前是否部署到服务器。但是,我无法采取一组可预测的步骤来使开发环境处于工作状态。

    有什么想法吗?我尝试过的事情:
  • 右键单击 Web 部件的 ASCX 并单击“打开方式...”并选择“使用编码”选项。没有效果。
  • 使用部署和收回的应用程序以及关闭和重新打开 .ascx 文件、解决方案和 Visual Studio 本身的各种组合进行开发。有时有效,有时无效。
  • 禁用项目的“调试后自动收回”选项(从知识库文章中推荐)。没有效果。
  • 最佳答案

    创建可视化 Web 部件时,您可以“免费”获得控件。创建一个 VWP 并将您的东西粘贴到该控件中,而不是事先创建一个。

    如果您想使用已创建的控件,请创建一个常规 Web 部件并覆盖 CreateChildControls(),然后在其中创建您的控件实例。如果您已经拥有控制权,那么使用 VWP 就没有用处了,因为 SharePoint 工具很可能会创建一些您不知道的绑定(bind)。

    关于sharepoint-2010 - 嵌套用户控件在可视 Web 部件中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9234967/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com