- PR -

GridViewの値の参照方法を教えて下さい。

1
投稿者投稿内容
未熟者
常連さん
会議室デビュー日: 2006/03/27
投稿数: 36
投稿日時: 2006-03-27 11:55
はじめまして、先週からC#をはじめた未熟者といいます。
現在、VS2005のC#にてWEBアプリを作成しはじめたのですが
いきなりGridViewに表示されたCell値の取得方法で躓いてます。
表示している内容は、テプレート列にチェックボックス、社員NO、社員名です。
承認チェックボックスにチェックされた行を、確認ボタン(btnkakunin)という
ボタンをクリックされたら、チェックボックスの値を表示行数分チェックし
チェックされてる行があれば、テキストボックス(txtsentaku)に社員No及び
社員名を表示するという仕様です。
ご教授をお願いします。

承認 社員No 社員名
 □ 99999 AAAAAAAAAAA
□ 88888   bbbbbbbbbbb

現状のコーディングはこちらです。
protected void btnkakunin_Click(object sender, EventArgs e)
{
int cnt1;
txtkakunin.Text = "";
for( cnt1=1; cnt1 < GridView1.Rows.Count;cnt1++)
{
// チェックボックスの値のチェック
if (((CheckBox)GridView1.Rows[cnt1].Cells[0].Controls[1]).Checked)
// txtkakunin.Text += ??????? ;
            ↑
                 ???


}
}
masakazu
会議室デビュー日: 2006/02/16
投稿数: 9
投稿日時: 2006-03-27 13:21
私の読解力がないのか、よく質問内容がわからないのですが、
この使用例あたりで解決します?
http://msdn2.microsoft.com/ja-JP/library/system.web.ui.webcontrols.gridviewrow(VS.80).aspx
うきょきょ
常連さん
会議室デビュー日: 2004/01/09
投稿数: 44
投稿日時: 2006-03-27 14:18
いつもここでは、質問ばかりなので、たまには回答も・・・

VB.NETのソースで申し訳ないですが、こんな感じですか?

コード:
        Dim I As Integer

        TextBox1.Text = ""
        For I = 0 To GridView1.Rows.Count - 1
            If CType(GridView1.Rows(I).Cells(0).Controls(0), CheckBox).Checked Then
                TextBox1.Text += GridView1.Rows(I).Cells(1).Text & "/" & GridView1.Rows(I).Cells(2).Text + vbCrLf
            End If
        Next



未熟者さんのコード見るとGridView1.Rows.Countを1〜にしてますけど、
0〜の気がします。
あと上のサンプルでは使ってませんが、ifの前にGridView1.Rows(I)を退避して、
その変数を参照させるようにすると処理効率があります。


未熟者
常連さん
会議室デビュー日: 2006/03/27
投稿数: 36
投稿日時: 2006-03-27 15:13
masakazuさん、うきょきょさん ご指導ありがとうございます。
早速、以下の様に修正して実行した所チェックボックスの値は判断出来るように
なりました。ありがとうございました。
ただ、社員Noにスペースで入ってきちゃってますので社員Noが入るように
調べて見ます。

protected void btnkakunin_Click(object sender, EventArgs e)
{
int cnt1;
dispCheckBox.Text = "";
for( cnt1=0; cnt1 < GridView1.Rows.Count;cnt1++)
{
// チェックボックスの値のチェック
if (((CheckBox)GridView1.Rows[cnt1].Cells[0].Controls[1]).Checked)
dispCheckBox.Text += GridView1.Rows[cnt1].Cells[1].Text;

}
}
1

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