获取数组列表中的gridview列值

时间:2012-11-03 05:19:59

标签: asp.net vb.net gridview checkbox

我有gridview,其中我有复选框控件就像这张图片。

enter image description here

问题是我想使用checked status.Mean的值,如果检查状态,那么我想将值分配给像867,864这样的字符串。我在这里尝试了一些代码,但它没有正常工作

For Each gvrow As GridViewRow In GridView5.Rows
            Dim chkbox As CheckBox = CType(gvrow.FindControl("chkStatusGM"), CheckBox)
            If chkbox.Checked Then
                Dim bpv As String = GridView5.Rows(0).Cells(3).Text
                Response.Write(bpv)
End If
        Next

但是我想要的是867867而不是867,864。请任何人帮助获得所需的输出

2 个答案:

答案 0 :(得分:0)

Dim bpv As String = ""

For Each gvrow As GridViewRow In GridView5.Rows
    Dim chkbox As CheckBox = (CheckBox)gvrow.FindControl("chkStatusGM"); 
    If chkbox!= null && chkbox.Checked Then
        If bpv <> "" Then
            bpv += ","
        End If
        bpv += gvrow.Cells(3).Text
    End If
 Next
 Response.Write(bpv)

答案 1 :(得分:0)

很抱歉在C#中给出答案,因为我不熟悉VB,你可以使用在线转换器将代码转换为VB

我发现的错误是您应该采用索引并递增,以便检测下面选中的下一个复选框:

int j = 0;
foreach (GridViewRow gvRow in GridView1.Rows)
{
    CheckBox chkSel = (CheckBox)gvRow.FindControl("SelectCheck");
    if (chkSel.Checked)
    {
        string Delete = Convert.ToString(GridView1.Rows[j].Cells[3].Text);
        //Cells[3] is the column to get one by one rows ceslls[3] columns
        Bal_add.Delete(Delete);
    }
    j++;
}

例如在这种情况下j是索引并递增它。

希望这会有所帮助:D