Abrufen der Werte aus einer Liste zu Gridview in SharePoint-Webpart?

Habe ich eine Liste namens Registrierung und die folgenden sind die Spalten meiner Liste.

Spalte : Typ

Name des Mitarbeiters : die Person oder Gruppe

Name des MANAGERS : Person oder Gruppe

Praxis-Name : Einzelne Textzeile

Programm-Name : Lookup

Status : Wahl

Voraussetzung : Mehrere Zeilen text

Und jetzt erstellte ich ein Webpart angezeigt werden all diese Werte als raster anzeigen
hier ist der code, was ich getan habe für webpart.cs

protected void Page_Load(object sender, EventArgs e)
{
    gridViewManager.DataSource = GetData();
    gridViewManager.DataBind();
}

#region Try2
DataTable GetData()
{
    SPSite oSiteCollection = SPContext.Current.Site;
    SPWeb oWeb = oSiteCollection.OpenWeb();
    SPList oSPList = oWeb.Lists["Registration"];
    SPListItemCollection oSPListItemCollection = oSPList.Items;
    DataTable dt = new DataTable();            
    try
    {              
        dt.Columns.Add("Employee Name", typeof(String));
        dt.Columns.Add("Manager Name", typeof(String));
        dt.Columns.Add("Practice Name", typeof(String));
        dt.Columns.Add("Program Name", typeof(LookupField));
        //dt.Columns.Add("Program Name", typeof(String));
        dt.Columns.Add("Status", typeof(String));
        dt.Columns.Add("Prerequisite", typeof(String));               
        DataRow dataRow;                 
        foreach (SPListItem oSplistItem in oSPListItemCollection)
        {
            dataRow = dt.Rows.Add();
            dataRow["Employee Name"] = oSplistItem["Employee Name"].ToString();
            dataRow["Manager Name"] = oSplistItem["Manager Name"].ToString();
            dataRow["Practice Name"] = oSplistItem["Practice Name"].ToString();
            dataRow["Program Name"] = oSplistItem["Program Name"].ToString();
            dataRow["Status"] = oSplistItem["Status"].ToString();
            dataRow["Prerequisite"] = oSplistItem["Prerequisite"].ToString();
        }
        return dt;
    }
    catch (Exception ex)
    {
        System.Diagnostics.Debug.WriteLine("Managers Approval" + ex.Message.ToString());
        return dt;
    }

#endregion Try2
}

Hier ist der code für das usercontrol-code:

<SharePoint:SPGridView runat="server" ID="gridViewManager" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="Employee Name" HeaderText="Employee Name" />
        <asp:BoundField DataField="Manager Name" HeaderText="ManagerName" />
        <asp:BoundField DataField="Practice Name" HeaderText="Practice Name" />
        <asp:BoundField DataField="Program Name" HeaderText="Program Name" />
        <asp:BoundField DataField="Status" HeaderText="Current Status" />
        <asp:BoundField DataField="Prerequisite" HeaderText="Prerequisite" />
        <asp:TemplateField HeaderText="">
            <ItemTemplate>
                <asp:Button ID="BtnEdit" runat="server" Text="Take Action" />
                <asp:Button ID="Button1" runat="server" Text="View Details" />
            </ItemTemplate>
            <HeaderTemplate>
            </HeaderTemplate>
        </asp:TemplateField>
    </Columns>
</SharePoint:SPGridView>

Nun stehe ich vor einem proble mit diesen zwei Zeilen code

dt.Columns.Add("Program Name", typeof(LookupField));
dt.Columns.Add("Prerequisite", typeof(String)); 

wenn ich nicht dieses, dann dieses webpart funktioniert perfekt . aber ich wollte zeigen diese Felder zu . wie kann ich dies tun ?

  • Ich würde schätzen, integrieren Sie den code nicht als Bild, sondern als text. Denn wie es aussieht haben Sie Zugriff auf es. Auch da wäre eine besser lesbare beleuchten und nicht nur alles Fett.
  • ich bin so Leid, Shegit . ich versucht, um als code selbst, aber es ist nicht in der Lage submitt HTML-code hier
  • Ich beschloss, Abfall einige Zeit, habe es für Sie. Ich habe gesehen, hier sind viele Sprachen, wie code-Beispiele, so Frage ich mich, was man wollte, denn es war eine Nachricht, die Sie abgelehnt. (dauert eine minute, bis jemand begutachteten es.)
  • zum Thema: Bist du sicher das dein problem entsteht, weil diese beiden? Denn Sie haben dt.Columns.Add("Program Name", typeof(LookupField)); und dt.Columns.Add("Program Name", typeof(String)); wo erklären Sie zwei Spalten mit dem gleichen Namen, aber unterschiedlichen Typs. Was passiert, wenn man nur dt.Columns.Add("Prerequisite", typeof(String) als eine Art Verengung Ausnahme-Werfer?
  • ya ich habe versucht, die beiden Weg, um das Feld in gridview, es funktioniert nicht. man kommentiert Zeile ..
  • Ist der lookup multi-valued-lookup oder ein einwertig lookup? Wenn es einwertig ist es nur eine Zeichenfolge, wenn es multi-valued dann müssen Sie konvertieren die SPFieldLookupValueCollection in einen string.

InformationsquelleAutor Jpaul | 2012-02-20
Schreibe einen Kommentar