2013-10-21 21 views

回答

4

在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; 
     } 
    } 
+0

由于刚刚试了一下,它的工作原理 –

+1

重要一提的是,这并不总是工作 - 我不知道为什么。 EG:我正在自定义内容查询Web部件(CQWP),并且此方法不向编辑面板添加任何属性。 – Markus

+0

我们在哪里粘贴此代码? – variable

0

内容查询Web部件(CQWP)的解决方案:toolpart。 toolpart.cs public class 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(); 
    } 
} 
2

可视Web部件从哪里代码位于ascx.cs文件asp.net web部件不同,并增加你应该增加一个属性下面类的定义下面的代码在你的网络的一部分

[WebBrowsable(true), 
WebDisplayName("Project ID"), 
WebDescription("Enter Project Number"), 
Personalizable(PersonalizationScope.Shared), 
Category("Project Settings")] 
public string ProjectID { get; set; } 

也,你可以检查此文章中的具体步骤

https://blog.devoworx.net/2016/03/23/create-custom-web-part-properties-for-visual-webpart-in-sharepoint-2010-2013/

希望它可以帮助你

相关问题