[英]Custom visual web part properties sharepoint
我在 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 部件中沒有 webpart .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
文件中的代碼位於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) 的解決方案:工具部件。 toolpart.cs 公共類 ContentQueryToolPart : ToolPart { private DropDownList ddlMainXslTemplate; 私有 ContentQuery webPart;
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
}
}
並在您的 webpart.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();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.