特定のボタンを非表示

SPREAD標準のコマンドバーにおいて、任意のボタンを非表示にすることができます。
CreateButtonイベントにて、各ボタンをイベント引数e.Command(文字列)にて識別し、Visibleプロパティを変更することで、任意のボタンを非表示にすることが可能です。

各ボタンに対応するCommand(文字列)は下記のとおりです。
(Command)(ボタンの内容)
Update更新
Cancelキャンセル
Clear 切り取り
Copyコピー
Paste 貼り付け
Prev前のページに戻る
Next次のページに進む
Print シートの印刷

このサンプルでは非表示にしたいボタンをチェックし、「変更」ボタンを押下することで、コマンドボタンを非表示にすることができます。


 ID氏名カナ生年月日性別血液型部署入社日メールアドレス
11001亀甲 滋万キコウ シゲマ1950/02/04A人事部1972/04/01sigema_kikou@abc.co.jp
21002寒田 希世カンダ キヨ1959/06/28B人事部1981/04/01kiyo_kanda@bbb.or.jp
31003小和瀬 澄オワセ キヨ1969/03/06A人事部1991/04/01kiyo_owase@aaa.co.jp
41004宇夫 早余子ウブ サヨコ1976/07/28O人事部1998/04/01sayoko_ubu@bbb.or.jp
51005宇田津 聖智ウダツ キヨトモ1965/09/04A営業部1987/04/01kiyotomo_udatu@abc.co.jp
61006茨城 昭児イバラキ ショウジ1963/04/28O営業部1985/04/01shouzi_ibaraki@xyz.ne.jp
71007石ヶ休 椎茄イシガキュウ シイナ1953/02/21O営業部1975/04/01siina_isigagyuu@abc.co.jp
81008赤司 恵治郎アカツカサ ケイジロウ1968/08/02O経理部1990/04/01keizirou_akatukasa@abc.co.jp
91009小橋 仰一オハシ ギョウイチ1972/03/02B経理部1994/04/01gyouiti_ohasi@abc.co.jp
101010一重 公大イチジュウ コウダイ1964/04/19B経理部1986/04/01koudai_itizyuu@xyz.ne.jp
   

ソースコード

別ウィンドウで表示
using System;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Configuration;

public partial class commandbuttonvisible : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack) return;

        // データ連結
        DataSet ds = new DataSet();
        ds.ReadXml(MapPath("../App_Data/data50.xml"));
        FpSpread1.Sheets[0].DataSource = ds;
        
        // SPREAD初期化
        InitSpread(FpSpread1.Sheets[0]);            

        // SPREAD設定
        FpSpread1.CommandBar.Visible = true;
        FpSpread1.CssClass = "spreadStyle";
        FpSpread1.UseClipboard = false;

        // クライアント側スクリプトの設定
        string clientScript = "<script language=\"JavaScript\">";
        clientScript += "function cmmdbuttonvisible()";
        clientScript += "{";
        clientScript += "var spread = document.getElementById(\"" + FpSpread1.ClientID + "\");";
        clientScript += "spread.CallBack(\"cmmdbuttonvisible\");";
        clientScript += "}";
        clientScript += "</script>";

        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "commandbuttonvisibleScript", clientScript, false);
    }

    private void InitSpread(FarPoint.Web.Spread.SheetView sheet)
    {
        // フォントサイズの設定
        sheet.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.ColumnHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.RowHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.SheetCorner.DefaultStyle.Font.Size = FontUnit.Parse("80%");

        // シート設定
        sheet.PageSize = 10;

        // 列幅の設定
        sheet.Columns[0].Width = 45;
        sheet.Columns[1].Width = 85;
        sheet.Columns[2].Width = 120;
        sheet.Columns[3].Width = 80;
        sheet.Columns[4].Width = 50;
        sheet.Columns[5].Width = 50;
        sheet.Columns[6].Width = 65;
        sheet.Columns[7].Width = 80;
        sheet.Columns[8].Width = 140;

        // 縦方向の揃え位置を中央に設定
        sheet.DefaultStyle.VerticalAlign = VerticalAlign.Middle;
    }
 
    protected void FpSpread1_CreateButton(object sender, FarPoint.Web.Spread.CreateButtonEventArgs e)
    {
        
        for (int i = 0; i < CheckBoxList1.Items.Count; i++)
        {
            if (e.Command == CheckBoxList1.Items[i].Value) {
                if (CheckBoxList1.Items[i].Selected == true)
                {
                    e.Visible = false;
                }
                else
                {
                    e.Visible = true;
                }
                break;
            }  
        }
    }
}

Partial Public Class commandbuttonvisible
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If IsPostBack Then
            Return
        End If

        ' データ連結
        Dim ds As New System.Data.DataSet()
        ds.ReadXml(MapPath("../App_Data/data50.xml"))
        FpSpread1.Sheets(0).DataSource = ds

        ' SPREAD初期化
        InitSpread(FpSpread1.Sheets(0))

        ' SPREAD設定
        FpSpread1.CommandBar.Visible = True
        FpSpread1.CssClass = "spreadStyle"
        FpSpread1.UseClipboard = False

        ' クライアント側スクリプトの設定
        Dim clientScript As String = "<script language=""JavaScript"">"
        clientScript += "function cmmdbuttonvisible()"
        clientScript += "{"
        clientScript += "var spread = document.getElementById(""" + FpSpread1.ClientID & """);"
        clientScript += "spread.CallBack(""cmmdbuttonvisible"");"
        clientScript += "}"
        clientScript += "</script>"

        ScriptManager.RegisterClientScriptBlock(Me, Me.GetType(), "commandbuttonvisibleScript", clientScript, False)
    End Sub

    Private Sub InitSpread(ByVal sheet As FarPoint.Web.Spread.SheetView)
        ' フォントサイズの設定
        sheet.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.ColumnHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.RowHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.SheetCorner.DefaultStyle.Font.Size = FontUnit.Parse("80%")

        ' シート設定
        sheet.PageSize = 10

        ' 列幅の設定
        sheet.Columns(0).Width = 45
        sheet.Columns(1).Width = 85
        sheet.Columns(2).Width = 120
        sheet.Columns(3).Width = 80
        sheet.Columns(4).Width = 50
        sheet.Columns(5).Width = 50
        sheet.Columns(6).Width = 65
        sheet.Columns(7).Width = 80
        sheet.Columns(8).Width = 140

        ' 縦方向の揃え位置を中央に設定
        sheet.DefaultStyle.VerticalAlign = VerticalAlign.Middle
    End Sub

    Protected Sub FpSpread1_CreateButton(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.CreateButtonEventArgs) Handles FpSpread1.CreateButton
        For i As Integer = 0 To CheckBoxList1.Items.Count - 1
            If e.Command = CheckBoxList1.Items(i).Value Then
                If CheckBoxList1.Items(i).Selected = True Then
                    e.Visible = False
                Else
                    e.Visible = True
                End If
                Exit For
            End If
        Next
    End Sub
End Class
<%@ Page MasterPageFile="~/MasterPage.master" Language="c#" AutoEventWireup="true" 
         Inherits="commandbuttonvisible" CodeFile="commandbuttonvisible.aspx.cs" %>

<%@ Register Assembly="FarPoint.Web.SpreadJ" Namespace="FarPoint.Web.Spread" TagPrefix="FarPoint" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <input id="Button1" type="button" value="変更" onclick="cmmdbuttonvisible();" style="width: 160px;" />
    <asp:CheckBoxList ID="CheckBoxList1" runat="server" Height="20px" Width="650px" 
        RepeatColumns="5" RepeatDirection="Horizontal">
        <asp:ListItem Value="Update">更新</asp:ListItem>
        <asp:ListItem Value="Cancel">キャンセル</asp:ListItem>
        <asp:ListItem Value="Clear">切り取り</asp:ListItem>
        <asp:ListItem Value="Copy">コピー</asp:ListItem>
        <asp:ListItem Value="Paste">貼り付け</asp:ListItem>
        <asp:ListItem Value="Prev">前のページに戻る</asp:ListItem>
        <asp:ListItem Value="Next">次のページへ進む</asp:ListItem>
        <asp:ListItem Value="Print">シートを印刷</asp:ListItem>
    </asp:CheckBoxList>
    <farpoint:FpSpread ID="FpSpread1" runat="server" 
        oncreatebutton="FpSpread1_CreateButton">
        <CommandBar BackColor="Control" ButtonFaceColor="Control" ButtonHighlightColor="ControlLightLight"
            ButtonShadowColor="ControlDark" />
        <Sheets>
            <farpoint:SheetView SheetName="Sheet1">
            </farpoint:SheetView>
        </Sheets>
    </farpoint:FpSpread>
</asp:Content>