gpt4 book ai didi

.net - 如何在 SharePoint 2010 沙盒化 Visual WebPart 上创建可编辑属性

转载 作者:行者123 更新时间:2023-12-02 02:26:29 28 4
gpt4 key购买 nike

我在安装了 SharePoint powertools 的 Visual Studio 2010 中使用 SharePoint 2010 开发沙盒可视化 Web 部件。 Web 部件按预期部署和工作,但属性不可编辑。我认为核心问题是 WebPartStorageAttribute 在沙盒中不可用,但一直无法找到有关如何创建具有可编辑属性的沙盒 Web 部件的指导。这可能吗?

[ToolboxItem(false)]
[XmlRoot(Namespace="MyNamespace")]
public partial class MyWebPart: System.Web.UI.WebControls.WebParts.WebPart
{
const string defaultStartTime = "00:30:00";
private string _startTime = "00:30:00";

[Browsable(true)]
[WebBrowsable(true)]
[Category("Timer")]
[Description("Start time to use if the user has not set a different one.")]
[XmlElement(ElementName="StartTime")]
[DefaultValue(defaultStartTime)]
[FriendlyName("Start Time")]
public string StartTime
{
get
{
return _startTime;
}
set
{
_startTime = value;
}
}
...

上面的代码是不是漏了什么?是否可以创建一个可编辑的沙盒 Web 部件,如果可以,它是如何完成的?

最佳答案

我刚刚经历了这个过程,这就是我设法让它在沙盒解决方案和 365 网站上运行的方式,这是完整的示例代码:

注意:我在 SharePoint Power Tools for Visual Studio 中使用 Visual WebPart (SandBoxed)

ToolPartTest.ascx:

<h3>Selected List</h3>
<dd><asp:Literal runat="server" ID="list" /></dd>

TooLPartTest.ascx.cs:

[WebBrowsable(true), Personalizable(true)]
public string ListName { get; set; }

protected override void OnInit(EventArgs e)
{
base.OnInit(e);
InitializeControl();
}

protected void Page_Load(object sender, EventArgs e)
{

}

protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);

list.Text = ListName ?? "(None)";
}

public override EditorPartCollection CreateEditorParts()
{
return new EditorPartCollection(base.CreateEditorParts(),
new[]
{
new CustomEditorPart
{
ID = ID + "_editorPart"
}
}
);
}

ToolPart.cs

public class CustomEditorPart : EditorPart
{
private DropDownList _list;

protected override void OnInit(EventArgs e)
{
base.OnInit(e);

_list = new DropDownList();
_list.AppendDataBoundItems = true;
_list.Items.Add("");
_list.DataTextField = "Title";
_list.DataValueField = "Title";
_list.DataSource = SPContext.Current.Site.RootWeb.Lists;
_list.DataBind();

Controls.Add(new LiteralControl("List: "));
Controls.Add(_list);

}

public override bool ApplyChanges()
{
EnsureChildControls();

if (!string.IsNullOrEmpty(_list.SelectedValue))
((ToolPartTest)WebPartToEdit).ListName = _list.SelectedValue;

return true;
}

public override void SyncChanges()
{
EnsureChildControls();

var webpart = ((ToolPartTest)WebPartToEdit);
_list.SelectedValue = webpart.ListName;

}
}

关于.net - 如何在 SharePoint 2010 沙盒化 Visual WebPart 上创建可编辑属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5717096/

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