- PR -

【ASP.NET】DataGridのCheckBoxからCheckedプロパティを取得する方法

投稿者投稿内容
daikoku
常連さん
会議室デビュー日: 2005/09/22
投稿数: 21
投稿日時: 2005-09-22 18:23
質問させて頂きます。
どうかよろしくお願い致します。

OS:WindowsXP Pro
開発環境:VS.NET(ASP.NET Webアプリケーション)

当方は現在ASP.NETにてWebアプリの開発をしております。
Webフォーム上にDataGridを貼り付けておりまして
プロパティビルダにてテンプレート列を追加し
行ごとにチェックボックスを配置しています。

そしてどの行のチェックボックスをチェックしたか
判断するために、ボタンを押したイベントが発生した際に
下記のような処理を行っております。
***************************************************
short wCnt;
CheckBox chbx;
for ( wCnt = 0 ; wCnt < DataGrid1.Items.Count ; wCnt++){
 chbx = ( CheckBox )DataGrid1.Items[ wCnt ].FindControl( "CheckBox1" );
 if( chbx.Checked )
 {
    ・・・・
 }
}
***************************************************

しかしチェックしたにも関わらずすべてfalseと判断してしまいます。
ただ単にブラウザ上でのチェックしたという情報がサーバ側に無い
だけだと思うのですが、サーバ側で取得する手段がわからずにおります。
大変レベルの低い質問ではありますが
どうかご教授頂ければ幸いです。

よろしくお願い致します。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-22 18:34
検索してみました。
http://support.microsoft.com/kb/320707/JA/


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-09-22 18:54
こんばんわ。
以前daikokuさんのとほぼ全くコードを書いたことがありますが、問題無く動いてます。
唯一違うところといえばwCntがshortじゃなくてintなことくらいです。

aspxの方が何かおかしいのかな?こっちだとこんな感じですけど。

<ItemTemplate>
  <asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
</ItemTemplate>
daikoku
常連さん
会議室デビュー日: 2005/09/22
投稿数: 21
投稿日時: 2005-09-22 19:09
>ほのぼのさん
>じゃんぬねっとさん
早急な返答感謝いたします。
大変助かります。

じゃんぬねっとさんに教えて頂きましたサイトにて
同様の処理にしましたが思ったような動きになることが
出来ませんでした。

ほのぼのさんが載せてくださったaspxのHTML文も
私の方と比較させて頂きましたが同等のものと判明致しました。

どうしてCheckedプロパティを取得出来ないのか
皆目検討が付かなくって来てしまいました・・・
何かが抜けていることは間違いないのですが。
じゃんぬねっとさんに教えて頂いたサイトの手順が
正規のものだと思うのでもう一度一から見直してみようと思います。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-09-22 19:32
ボタンでのポストバック時に、サーバー側へはどのようなリクエストが送られていますか?
(問題はボディ部ですね。)

チェックされたという情報自体がサーバーに送られていないのか、それとも送られているのにプログラムで取得できないのかどっちでしょう。

参考:
これを使うとリクエストの内容が簡単に見えます。
http://hide.maruo.co.jp/software/inetspy.html
daikoku
常連さん
会議室デビュー日: 2005/09/22
投稿数: 21
投稿日時: 2005-09-22 19:52
>一郎さん
返答ありがとうございます。

ツールの方、紹介して頂きましてありがとうございます。
リクエストの見方がわからない為、大変助かります。
さっそくインストールさせて頂きました。
見たところ私ではちょっと理解するのが難しく
現在、一つずつ何を意味しているか見ているところです。
下記のようなリクエスト情報がボタンを押した際に来ているようです。

******************************************************************
POST /GpsDemoMap/WebForm1.aspx HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
Referer: http://localhost/GpsDemoMap/WebForm1.aspx
Accept-Language: ja
Content-Type: application/x-www-form-urlencoded
Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Host: localhost
Content-Length: 3891
Pragma: no-cache
Cookie: ASP.NET_SessionId=3spuinmme2kk2uyf50egdv55

__VIEWSTATE=dDw4NjM1NjYyNTQ7dDw7bDxpPDE%2BOz47bDx0・・・・(長い文字列です)
******************************************************************

知識不足で申し訳ありません。
勉強します。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-09-22 20:37
引用:

daikokuさんの書き込み (2005-09-22 19:52) より:
__VIEWSTATE=dDw4NjM1NjYyNTQ7dDw7bDxpPDE%2BOz47bDx0・・・・(長い文字列です)


その長い文字列は、
ID=値&ID=値&ID=値&・・・
という形になっています。
初めの"__VIEWSTATE"というIDを持つ値はいりませんので、その次の値からを書き込んでもらえますか?
つまり、初めに&の文字がある場所から先をコピペしてくださいということです。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-09-22 20:58
引用:

じゃんぬねっとさんに教えて頂きましたサイトにて
同様の処理にしましたが思ったような動きになることが
出来ませんでした。



本当に同様の処理なら動くでしょう。

まずサンプルをそのままコピーして動くことを確認する。
少しずつ手を入れながら、目標の画面を作り上げる。

そうすれば失敗しないですよ。

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