自定义视觉对象 Web 部件属性共享点
本文关键字:属性 共享 视觉 对象 Web 自定义 | 更新日期: 2023-09-27 18:36:08
我在Visual Studio 2012中创建可视Web部件属性时遇到问题。我被推荐给 http://msdn.microsoft.com/en-us/library/ee231551.aspx,但后来没有成功。
在 Web 部件中查找并找到 .ascx、ascx.cs 和 ascx.g.cs
我一直在尝试查找 webpart.cs 文件,但后来我无法找到。有没有办法我可以创建它,或者我找错了地方......
在VS 2012中创建的Visual Web Part中没有Web部件.cs文件。您可以将 Web 部件属性添加到 ascx.cs 文件中,例如
[WebBrowsable(true),
WebDisplayName("Page Title"),
WebDescription("Title displayed on the page"),
Category("Test Properties"),
Personalizable(PersonalizationScope.Shared)]
public string PageTitle
{
get
{
return _pageTitle;
}
set
{
_pageTitle = value;
}
}
可视 Web 部件不同于代码位于ascx.cs
文件中asp.net
Web 部件,若要添加属性,应在 Web 部件中的类定义下方添加以下代码
[WebBrowsable(true),
WebDisplayName("Project ID"),
WebDescription("Enter Project Number"),
Personalizable(PersonalizationScope.Shared),
Category("Project Settings")]
public string ProjectID { get; set; }
有关更多详细信息,请查看详细步骤 在 SharePoint 中使用默认值创建自定义可视 Web 部件属性
内容查询 Web 部件 (CQWP) 的解决方案:工具部件。工具部分.cs公共类内容查询工具部分 : 工具部分 { 私有下拉列表 ddlMainXslTemplate; 私有内容查询网络部件;
public ContentQueryToolPart()
{
this.Title = "more props";
}
public override void ApplyChanges()
{
webPart.MainXslTemplate = (MainXslTemplateEnum)Enum.Parse(typeof(MainXslTemplateEnum), ddlMainXslTemplate.SelectedItem.Text);
}
protected override void OnInit(EventArgs e)
{
webPart = (ContentQuery)this.ParentToolPane.SelectedWebPart;
base.OnInit(e);
}
protected override void CreateChildControls()
{
Label label = new Label();
label.Text = "main xsl";
this.Controls.Add(label);
ddlMainXslTemplate = new DropDownList();
ddlMainXslTemplate.DataSource = Enum.GetNames(typeof(MainXslTemplateEnum));
ddlMainXslTemplate.DataBind();
if (string.IsNullOrEmpty(webPart.MainXslTemplate.ToString()) == false)
{
ddlMainXslTemplate.SelectedValue = webPart.MainXslTemplate.ToString();
}
this.Controls.Add(ddlMainXslTemplate);
//btw a custom UC can go here
}
protected override void RenderToolPart(System.Web.UI.HtmlTextWriter output)
{
output.AddAttribute(HtmlTextWriterAttribute.Id, "ContentQueryToolPart");
output.RenderBeginTag(HtmlTextWriterTag.Div);
base.RenderToolPart(output);
output.RenderEndTag();
//this is mainly for css
}
}
并在您的网络部件中.cs
[ToolboxItemAttribute(false)]
public class ContentQuery : ContentByQueryWebPart
{
public MainXslTemplateEnum MainXslTemplate { get; set; }
public override ToolPart[] GetToolParts()
{
List<ToolPart> toolParts = new List<ToolPart>();
toolParts.Add(new ContentQueryToolPart());
toolParts.AddRange(base.GetToolParts());
return toolParts.ToArray();
}
}