私はウェブを調べて、この問題を解決するのに役立たなかったたくさんの答えを見つけました!
データプロジェクトにメソッドがあります。次に、displaying要素を持つプロジェクトがあります。
コードビハインド:
public static DataTable GetAllobjs(SPWeb objWeb)
{
DataTable tmpData = new DataTable();
try
{
allProjects.Columns.Add(ColumnNames.1);
allProjects.Columns.Add(ColumnNames.2);
allProjects.Columns.Add(ColumnNames.3);
allProjects.Columns.Add(ColumnNames.4);
allProjects.Columns.Add(ColumnNames.5);
allProjects.Columns.Add(ColumnNames.6);
allProjects.Columns.Add(ColumnNames.7);
allProjects.Columns.Add(ColumnNames.8);
allProjects.Columns.Add(ColumnNames.9);
//Get the raw project data
List<obj> data= DataAquisition.GetAllobj(objWeb);
/// Loop through the raw data.
foreach (obj currentInformation in data)
{
// Creates a new data row containing information required and adds it to the DATAtable
}
}
catch (Exception exc)
{
// Logs errors here
}
return tmpData;
}
ユーザーコントロールのbehind(cs)ページに、GetAllobjs(SPWeb objWeb)を呼び出すメソッドがあります。
[DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
public DataTable GetAllUsers()
{
return Data.GetAllobjs(SPContext.Current.Web);
}
次に、ページが読み込まれます。
ObjectDataSource d = new ObjectDataSource();
d.ID = "s";
d.SelectMethod = "GetAllUsers";
d.TypeName = SPGridView.GetType().AssemblyQualifiedName;
this.Controls.Add(d);
/// Apply a data source to the SPGrid View
SPGridView.DataSourceID = d.ID;
次に、子の作成コントロールで、フィールドを作成してSPGridviewにバインドし、databindを呼び出します。
これでうまくいくと思いましたが、エラーが発生します。どこかでコンポーネントモデル[]タグが欠落しているかどうかはわかりませんが、誰かがどこで間違っているのかを指摘してくれることを期待していました。