您的位置:首页 > 其它

当GridView遭遇数据类型"是/否",获取gridview的一个单元格的值并更改

2008-11-05 09:56 281 查看
在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(); //绑定数据

}

顺带讲下

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();

}

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

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类型

//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();

慢慢理解.好
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐