サンドボックスソリューション開発とSharePoint Onlineへの展開
Visual Studio 2010によるSharePoint 2010開発の基本(7)
ダウンロード サンプルファイル (20.6 KB)
サンプル:Webパーツを作成してSharePont Onlineで展開する
それでは、Visual Studio 2010を使用してサンドボックスソリューションを作成してみましょう。そして、作成したソリューションパッケージをSharePoint Onlineに展開し、動作を確認してみましょう。
サンプル内容
SharePoint Onlineのチームサイトに既定で用意されている「投稿」リストから全アイテムを取得して表示し、アイテムの新規作成も行うことのできるWebパーツを作成してみます(図2)。
サンプルの作成
以下の手順で、サンプルを作成します。
[1]空のSharePointプロジェクトを作成する
管理者権限でVisual Studio 2010を起動します。[新しいプロジェクト]ダイアログボックスで[インストールされたテンプレート]から[Visual C#]-[SharePoint]-[2010]を選択し、プロジェクトテンプレートの一覧から[空のSharePointプロジェクト]を選択します。任意のプロジェクト名を入力し[OK]ボタンをクリックします(図3)。
[SharePointカスタマイズウィザード]が起動し、[デバッグのサイトとセキュリティレベルの指定]ダイアログボックスが表示されます。[デバッグに使用するローカルサイト]には、開発時に使用するSharePointサイトのURLを入力します。信頼レベルとして[サンドボックスソリューションとして配置する]を選択し、[完了]ボタンをクリックします(図4)。
[2]Webパーツをプロジェクトに追加する
ソリューションエクスプローラーで、一番上に表示されているプロジェクトを右クリックし、[追加]の[新しい項目]をクリックします。
表示された[新しい項目の追加]ダイアログボックスで、[Webパーツ]を選択します。[視覚的Webパーツ]ではないことに注意してください。そして、任意の名前を入力し(ここでは「WebPart1」のまま)、[追加]ボタンをクリックします(図5)。
[3]Webパーツを実装する
WebPart1.csを開き、まず次のリスト1のように修正します。
// (1)追加したusingディレクティブ using System.Collections.Generic;
Listジェネリッククラスを使用しますので、System.Collections.Generic名前空間を追加します。次にリスト2のように、表示用コントロールへのアクセスのための2つの静的変数を追加し、自動生成されたCreateChildControlsメソッド内にコードを追加します。
private GridView GridView1;
private TextBox TextBox1;
protected override void CreateChildControls()
{
// (2)表示用コントロールの作成
GridView1 = new GridView();
Controls.Add(GridView1);
TextBox1 = new TextBox();
Controls.Add(TextBox1);
Button Button1 = new Button();
Button1.Text = "追加";
Button1.Click += new EventHandler(Button1_Click);
Controls.Add(Button1);
Refresh();
}
(2)では、表示用のコントロールとして、GridViewコントロール、TextBoxコントロール、Buttonコントロールを生成し追加しています。Buttonコントロールには、クリック時のイベントハンドラーを設定しています。最後に呼んでいるRefreshメソッドはコントロールの描画のためのもので、次のリスト3のように実装します。
private void Refresh()
{
// (3)「投稿」リストの取得
SPWeb web = SPContext.Current.Web;
SPList list = web.Lists["投稿"];
// (4)「投稿」リストアイテムの取得
List<string> titles = new List<string>();
foreach (SPListItem item in list.Items)
{
titles.Add(item.Title);
}
// (5)GridViewコントロールにバインド
GridView1.DataSource = titles;
GridView1.DataBind();
TextBox1.Text = "";
}
(3)では、SharePointライブラリのSPWebクラスやSPListクラスを使用して、「投稿」リストオブジェクトを取得しています。
(4)では、「投稿」リスト内の全リストアイテムを列挙し、タイトルのみのリストを作成しています。
(5)では、作成したタイトルリストをGridViewコントロールにバインドします。
最後に、次のリスト4のように、Buttonコントロールのクリック時のイベントハンドラーを実装します。
protected void Button1_Click(object sender, EventArgs e)
{
SPWeb web = SPContext.Current.Web;
SPList list = web.Lists["投稿"];
// (6)リストアイテムの追加
SPListItem item = list.AddItem();
item["Title"] = TextBox1.Text;
item["Body"] = TextBox1.Text;
item.Update();
Refresh();
}
(6)では、新規の「投稿」リストアイテムを作成し、「投稿」リストに追加しています。
以上で、サンプルは完成です。
この記事は参考になりましたか?
- Visual Studio 2010によるSharePoint 2010開発の基本連載記事一覧
-
- サンドボックスソリューション開発とSharePoint Onlineへの展開
- SharePoint 2010とSilverlightの連携
- Business Connectivity Services(BCS)を使用したSQL A...
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 広瀬 嘉久(株式会社ジェイテックジャパン)(ヒロセ ヨシヒサ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア


![図3 [新しいプロジェクト]ダイアログボックス](http://cz-cdn.shoeisha.jp/static/images/article/6189/6189_03_s.gif)
![図4 [デバッグのサイトとセキュリティレベルの指定]ダイアログボックス](http://cz-cdn.shoeisha.jp/static/images/article/6189/6189_04_s.gif)
![図5 [新しい項目の追加]ダイアログボックス](http://cz-cdn.shoeisha.jp/static/images/article/6189/6189_05_s.gif)