- PR -

Spreadのcheckboxについて

投稿者投稿内容
ドットネット初心者
常連さん
会議室デビュー日: 2007/01/29
投稿数: 25
投稿日時: 2007-02-15 16:11
現在、Spreadの列のCellTypeをCheckBoxCellTypeにし、
そのセル1つ1つに対してvalueに 1 を設定して
checkboxにチェックをしています。

画面上でcheckboxのチェックを外して、
サーバ側でcheckboxの値を取得したいのですが、
チェックを外したcheckboxのセルのvalueが 1 のままに
なっています。

Spreadのcheckboxがチェックされているか、外されているかの判断を
どのようにすればよいか教えてください。

よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-15 17:50
引用:

ドットネット初心者さんの書き込み (2007-02-15 16:11) より:

画面上でcheckboxのチェックを外して、サーバ側でcheckboxの値を取得したいのですが、チェックを外したcheckboxのセルのvalueが 1 のままになっています。


これはどのように確認したのでしょうか?
差し支えなければ、ソースを提示して頂けたらと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ドットネット初心者
常連さん
会議室デビュー日: 2007/01/29
投稿数: 25
投稿日時: 2007-02-16 10:45
じゃんぬねっと様

返信が遅くなりまして申し訳ございません。

チェックボックスの値の設定は

Page_Load処理

Spread.Cells[i,0].CellType = new FarPoint.Web.Spread.CheckBoxCellType();
Spread.Cells[i,0].Value = 1;

で、
チェックボックスにチェックされている件数、チェックが外れている件数の確認は

ボタンが押されたときの処理

if(Spread.Sheets[0].Cells[i,0].Value.Equals("1"))
{
checkCount++;
}
else
{
noCheckCount++;
}

とゆうふうにしているのですが、初期表示時はすべてのチェックボックスに
チェックがある状態で、画面上でチェックを外してボタンを押したときの処理で
チェックされている件数、チェックが外されている件数を確認したいのですが、
チェックが外されているチェックボックスの値も 1 のままになっています。

確認の仕方が間違っているのか、そもそも設定の仕方が間違っているのかわかりません。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-16 11:02
引用:

ドットネット初心者さんの書き込み (2007-02-16 10:45) より:

チェックがある状態で、画面上でチェックを外してボタンを押したときの処理でチェックされている件数、チェックが外されている件数を確認したいのですが、チェックが外されているチェックボックスの値も 1 のままになっています。
確認の仕方が間違っているのか、そもそも設定の仕方が間違っているのかわかりません。


FpCheckBox にキャストして Checked プロパティを見ても True になっていますか?
それと、Equals メソッドを使わない方が良いと思います。

また、0 のみが False であり、0 以外の値は True (もしくはグレー) に当たりますから、
Value プロパティで確認するのであれば、0 かそうでないかという比較ロジックが適切でしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ドットネット初心者
常連さん
会議室デビュー日: 2007/01/29
投稿数: 25
投稿日時: 2007-02-16 11:18
じゃんぬねっと様

ご返答ありがとうございます。

すみません。
FpCheckBox がみつからないのですが、具体的に教えていただけませんか?

参照設定しているのは
FarPoint.Web.SpreadJ
です。

申し訳ございません。。。
ドットネット初心者
常連さん
会議室デビュー日: 2007/01/29
投稿数: 25
投稿日時: 2007-02-16 12:59
FpCheckBoxは、参照設定でFarPoint.Winを追加したらありました。

しかし、何をキャストしたらいいのかがわかりません。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-16 13:14
引用:

ドットネット初心者さんの書き込み (2007-02-16 12:59) より:

FpCheckBoxは、参照設定でFarPoint.Winを追加したらありました。
しかし、何をキャストしたらいいのかがわかりません。


Web アプリケーションだったようですね...
FarPoint.Win 名前空間以下は名前どおり、Windows アプリケーション用のものです。

ということで、この件については忘れてください。

--

どこでチェックされた数を集計しているかわかりませんが、
PostBack 時に Load イベントが実行され、

引用:

Page_Load処理

Spread.Cells[i,0].CellType = new FarPoint.Web.Spread.CheckBoxCellType();
Spread.Cells[i,0].Value = 1;


が実行されているなんてことはないですよね?
IsPostBack で考慮されていますよね?

# 今さらこんな初歩的なことを確認すると、気を悪くされそうで恐縮ですが...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ドットネット初心者
常連さん
会議室デビュー日: 2007/01/29
投稿数: 25
投稿日時: 2007-02-16 13:31
じゃんぬねっと様

チェックされた数を集計しているのはボタンが押されたときの処理です。
btn_ServerClickのときです。

Page_Load処理のときは、IsPostBackの考慮はしています。

if(!IsPostBack)
{
}

といった感じです。

初心者なので、初歩的な確認されて当然です。
お気になさらず、お願いします。



スキルアップ/キャリアアップ(JOB@IT)