Kann ich eine Dropdown -Liste mit einer SharePoint -Liste laden, um eine benutzerdefinierte Webpart -Eigenschaft festzulegen?

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/11289

  •  16-10-2019
  •  | 
  •  

Frage

Ich habe diesen Beitrag gefunden, der behauptet, Ihnen zu zeigen, wie es geht:

http://blog.concurrency.com/sharepoint/create-a-custom-web-part-for-sharepoint-2010/comment-page-1/#comment-1851

Nachdem ich die Anweisungen und den Code sorgfältig befolgt hatte, konnte ich ihn nicht wie erwartet zum Laufen bringen.

Ich habe eine ähnliche Frage veröffentlicht hier, Aber die Antworten haben mir nur gesagt, wie ich eine Dropdown -Liste mit statischen Werten laden konnte. Ich möchte es aus einer SharePoint -Liste laden.

War es hilfreich?

Lösung

Abe du hast gesagt:

Ich habe die Quelle heruntergeladen, aber sie scheint nur mit der statischen Dropdown -Liste der Elemente zu funktionieren. Ich folgte Ihren Anweisungen, konnte aber nie die Dropdown -Arbeit mit einer internen Liste bekommen. Ist dies möglich, indem Sie den von Ihnen gegebenen Anweisungen befolgen? Wenn ja, wäre es möglich, dass Sie den Arbeitscode dafür veröffentlichen?

In der Quelle müssen Sie eine Überschreibung von hinzufügen CreateEditorParts

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.iwebabitable.Createeditorparts.aspx

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.webpart.createeditorparts.aspx

public override EditorPartCollection CreateEditorParts() {
    ArrayList editorArray = new ArrayList();
    MyEditorPart edPart = new MyEditorPart();
    edPart.ID = this.ID + "_editorPart1";
    editorArray.Add(edPart);
    EditorPartCollection editorParts = new EditorPartCollection(editorArray);
    return editorParts;
}

Daher verwendet der WebPart die benutzerdefinierten Editor -Teile.

Andere Tipps

Ich habe ein benutzerdefiniertes ToolPart, das aus einer Datenbank liest, aber Sie können sie stattdessen aus einem Splist ändern

public class CustomToolPart : ToolPart {

    protected override void CreateChildControls() {
        ddlCustom = new DropDownList();
        ddlCustom.ID = "ddlCustom";
        ddlCustom.ToolTip = "Custom";
        try {
            using (SqlConnection conn = new SqlConnection(this.webPart.ConnectionString)) {
                conn.Open();
                SqlCommand cmd = new SqlCommand(@"select id,name from [sometableftdb_forums]", conn);
                SqlDataAdapter rs = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                rs.Fill(ds, "Data");
                ddlCustom.DataSource = ds;
                ddlCustom.DataTextField = "name";
                ddlCustom.DataValueField = "id";
                ddlCustom.DataBind();
                ddlCustom.Items.Insert(0, new ListItem("(choose)", "0"));
            }

            //instead add code here for SPSite/SPWeb/SPList

        } catch (SqlException ex) {
            ddlCustom.Items.Insert(0, new ListItem("(sql error)", "0"));
        }
        ListItem item = ddlCustom.Items.FindByValue((webPart != null ? webPart.CustomValueId : 0).ToString());
        if (item != null) {
            ddlCustom.SelectedIndex = -1;
            item.Selected = true;
        }
        Controls.Add(ddlCustom);
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top