PowerTools SPREAD for ASP.NET 8.0J
行の展開の処理

データが階層表示されているとき、子階層を保持する行ヘッダに「+」「-」と展開状況を示すアイコンが表示されます。ユーザーがこのアイコンを操作することで行を展開または、折りたたむことができますが、ユーザーに特定の行の展開を許可するかどうかを設定することが可能です。アイコン画像を変更することも可能です。

また、コードから行の展開や折りたたみを行うことも可能です。特定の行のほか、一度のメソッドの呼び出しですべての行を展開、または折りたたむことができます。ループ処理を使うことなく、すべての子階層に対する処理が可能になります。

設定方法

サンプルコード

次のサンプルコードは、先頭行の展開を禁止します。また、Button1のクリックですべての行を展開し、Button2のクリックですべての行を折りたたみます。

protected void Page_Load(object sender, System.EventArgs e)
{
    if (IsPostBack) return;
    // リレーショナルデータを作成します。
    DataSet ds = new DataSet();
    DataTable table1 = new DataTable("Table1");
    table1.Columns.Add("区分ID", Type.GetType("System.Int32"));
    table1.Columns.Add("製品区分", Type.GetType("System.String"));
    table1.Rows.Add(new object[] { 1, "清涼飲料" });
    table1.Rows.Add(new object[] { 2, "ビール" });
    table1.Rows.Add(new object[] { 3, "焼酎" });
    ds.Tables.Add(table1);
    
    DataTable table2 = new DataTable("Table2");
    table2.Columns.Add("ID", Type.GetType("System.Int32"));
    table2.Columns.Add("製品名",Type.GetType("System.String"));
    table2.Columns.Add("価格", Type.GetType("System.String"));
    table2.Rows.Add(new object[] { 1, "いよかんドリンク", 100 });
    table2.Rows.Add(new object[] { 1, "マンゴードリンク", 100 });
    table2.Rows.Add(new object[] { 1, "ぶどうジュース", 200 });
    table2.Rows.Add(new object[] { 2, "激からビール", 300 });
    table2.Rows.Add(new object[] { 3, "麦焼酎 ちこちこ", 1000 });
    ds.Tables.Add(table2);

    // リレーションを作成します。
    ds.Relations.Add(table1.Columns["区分ID"], table2.Columns["ID"]);
        
    // データを連結し、先頭行の展開を禁止します。
    FpSpread1.DataSource = ds;
    FpSpread1.ActiveSheetView.SetRowExpandable(0, false);
}

protected void Button1_Click(object sender, EventArgs e)
{
    // 階層をすべて展開します。
    FpSpread1.ActiveSheetView.ExpandAll(true);
}

protected void Button2_Click(object sender, EventArgs e)
{
    // 階層をすべて折りたたみます。
    FpSpread1.ActiveSheetView.ExpandAll(false);
}
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If IsPostBack Then Return
        ' リレーショナルデータを作成します。
    Dim ds As New DataSet()
    Dim table1 As New DataTable("Table1")
    table1.Columns.Add("区分ID", Type.GetType("System.Int32"))
    table1.Columns.Add("製品区分", Type.GetType("System.String"))
    table1.Rows.Add(New Object() { 1, "清涼飲料" })
    table1.Rows.Add(New Object() { 2, "ビール" })
    table1.Rows.Add(New Object() { 3, "焼酎" })
    ds.Tables.Add(table1)
    
    Dim table2 As New DataTable("Table2")
    table2.Columns.Add("ID", Type.GetType("System.Int32"))
    table2.Columns.Add("製品名",Type.GetType("System.String"))
    table2.Columns.Add("価格", Type.GetType("System.String"))
    table2.Rows.Add(New Object() { 1, "いよかんドリンク", 100 })
    table2.Rows.Add(New Object() { 1, "マンゴードリンク", 100 })
    table2.Rows.Add(New Object() { 1, "ぶどうジュース", 200 })
    table2.Rows.Add(New Object() { 2, "激からビール", 300 })
    table2.Rows.Add(New Object() { 3, "麦焼酎 ちこちこ", 1000 })
    ds.Tables.Add(table2)

    ' リレーションを作成します。
    ds.Relations.Add(table1.Columns("区分ID"), table2.Columns("ID"))
        
    ' データを連結し、先頭行の展開を禁止します。
    FpSpread1.DataSource = ds
    FpSpread1.ActiveSheetView.SetRowExpandable(0, False)
End Sub

Protected Sub Button1_Click(sender As Object, e As EventArgs)
        ' 階層をすべて展開します。
    FpSpread1.ActiveSheetView.ExpandAll(True)
End Sub

Protected Sub Button2_Click(sender As Object, e As EventArgs)
        ' 階層をすべて折りたたみます。
    FpSpread1.ActiveSheetView.ExpandAll(False)
End Sub

関連トピック

 

 


© 2003-2015, GrapeCity inc. All rights reserved.