2

Visual Studio 2012 でビジュアル Web パーツ プロパティを作成する際に問題が発生しました。

Web パーツを調べたところ、.ascx、ascx.cs、および ascx.g.cs が見つかりました

webpart.cs ファイルを見つけようとしましたが、見つかりません。それを作成する方法はありますか、それとも間違った場所を探しているのかもしれません..

4

3 に答える 3

4

VS 2012 で作成されたビジュアル Web パーツには、webpart .cs ファイルはありません。たとえば、ascx.cs ファイルに Web パーツのプロパティを追加できます。

     [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;
        }
    }
于 2013-10-21T09:09:03.060 に答える
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();
    }
}
于 2014-08-06T18:41:18.830 に答える