2

グリッドビューでコントロールをチェックしても、常にチェック ボックス コントロールの値が false になります。

for (int i = 0; i < GridView1.Rows.Count; i++)
{
    CheckBox CheckBox1 = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");

    if (CheckBox1 != null)
    {
        if (CheckBox1.Checked)
        {
            query = GridView1.Rows[i].FindControl("Label1") + ",";
        }
    }
}
4

2 に答える 2

2

Page_Load メソッドでデータバインドしていますか? はいの場合、これを行う必要があります。

if(!IsPostBack)
{
    GridView1.DataSource = YourData;
}

これを行わないと、DataGridViewたとえそれがPostBack. この方法では、何をチェックしてもDataGridView、ポストバックのデータ ソースから再入力されます。

上記のコードを使用if(!IsPostBack)すると、チェックボックスのビューステート値が保持され、正しいCheckedステータスが得られます。

于 2012-10-02T14:46:49.307 に答える
0

チェックボックスのデザイン内に次の属性を追加します

ToolTip="<%#Container.DataItemIndex+1 %> " そして、以下は分離コードです

for (int i = 0; i < gdview.Rows.Count; i++)
    {
        string labeldetail = "";

        CheckBox cbox = (CheckBox)gdview.Rows[i].Cells[0].FindControl("CheckBox1");

        if (cbox != null)
        {
            if (cbox.Checked == true)
            {

                int rowsNo = (Convert.ToInt16(city.ToolTip) - 1); //Convert.ToInt16(SrNo);
               labeldetail = ((Label)gdview.Rows[rowsNo].FindControl("labelid")).Value;

}

于 2013-01-04T05:56:35.153 に答える