GridView遭遇数据类型"是/否",获取gridview的一个单元格的值并更改,附带更新GridView用法...

在GridView中的模板列,我不能访问到模板列内的列,正确说是不能访问到对应列的id.所以用下方法

在GridView1中 编辑模板,然后就在 ItemTemplate模式下拖入控件 CheckBox,可以见到源码中:

<ItemTemplate>
                        <asp:CheckBox ID="CheckBox1" runat="server" Text="xxx"  />
 </ItemTemplate>

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {          
        CheckBox check_value = (CheckBox)GridView1.Rows[e.RowIndex].FindControl("CheckBox1");//定义
       string sqlstr = "update teacher set passed=" + check_value.Checked.ToString() + " where t_name='" + (((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim()) + "'";
            OleDbConnection Conn = dbcenter.Acce_Conn();
            Conn.Open();
            OleDbCommand cmd = new OleDbCommand(sqlstr, Conn);//方法一
            cmd.ExecuteNonQuery();
            Conn.Close();

             mydatabind(); //绑定数据

}

顺带讲下GridView用法

 编辑行protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
         this.GridView1.EditIndex = e.NewEditIndex;
          mydatabind();
    }
  取消编辑  protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex = -1;
         mydatabind();
    }

  删除行protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {    
        OleDbConnection conn = dbcenter.Acce_Conn();
          conn.Open();
          OleDbCommand command = conn.CreateCommand();
          command.CommandText = "delete  from exam_test where testid=" + System.Convert.ToInt32(GridView1.Rows[e.RowIndex].Cells[x].Text) + ""; //方法二
         command.ExecuteNonQuery();
           conn.Close();
          GridView1.DataBind();

}

 

分页的处理代码 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
           
            GridView1.PageIndex = e.NewPageIndex; //开始分页处理
            GridView1.PageIndex = e.NewPageIndex;
            string SQL = " select * from exam_test "; //
            GridView1.DataSource = dbcenter.accessGetDataSet(SQL);           
            GridView1.DataBind();
        }

0904近半年来不搞dotnet,很生疏哦。后来在一个系统中要更改一个已经选定的gridview单元格值,也费了点时间.(170309--it text)

update段代码(更改的是 ittest -tch-power表)

 CheckBox check_value = (CheckBox)GridView1.Rows[e.RowIndex].FindControl("CheckBox1");//定义check_value为CheckBox类型
   int level = System.Convert.ToInt32(((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text);  //这次更改的重点哦。就是这里 更改一个已经选定的gridview单元格值 转换为int类型 Controls[0]表示控件的子控件,可以转为textbox,这样才可以获得其对应的单元格的值

如果在gridview的单元格里面对应是其他控件,例如 checkbox,   则可以这样:  

CheckBox check_value = (CheckBox)GridView1.Rows[e.RowIndex].FindControl("CheckBox1");//定义check_value为CheckBox类型,具体参考 ittest ---teacher_ok
         //string sqlstr = "update teacher set passed=" + check_value.Checked.ToString() + " where t_name='" + (((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim()) + "'";
         string sqlstr = "update teach set passed=" + check_value.Checked.ToString() + ",t_level="+level+" where t_name=@t_name";
       OleDbConnection Conn = center.Ace_Conn();
       Conn.Open();
       OleDbCommand cmd = new OleDbCommand(sqlstr, Conn);
       cmd.Parameters.Add("@t_name",OleDbType.VarChar,40);
       cmd.Parameters[0].Value = (((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim());
       cmd.ExecuteNonQuery();
        Conn.Close();
        databind();

慢慢理解.好

 

转载于:https://www.cnblogs.com/pyman/archive/2008/11/05/1326933.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值