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));
unddt.Columns.Add("Program Name", typeof(String));
wo erklären Sie zwei Spalten mit dem gleichen Namen, aber unterschiedlichen Typs. Was passiert, wenn man nurdt.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 Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Des Problems, das Sie haben ist mit null-Werten. .ToString() schlägt fehl, wenn das Objekt null ist. Ich gehe davon aus, dass alle anderen Felder keine null-Werte (zumindest da), aber die Felder, dass Sie Probleme mit tun. Sie haben ein paar Optionen. Sie können nur überprüfen, ob der Wert null ist und in eine leere Zeichenfolge, wenn es nicht, für viele der Felder sind schon strings können Sie nur wirken, statt .ToString-ing Sie. Sie verwenden können, zu Konvertieren.ToString(object), die behandelt null-Werte. Ich könnte noch mehrere andere Optionen, aber ich denke, Sie können es nehmen von hier aus.
Haben Sie einen Blick nehmen an, dass der SharePoint-API generieren die DataTable mit SPListItemCollection.GetDataTable()?