本篇文章地址:http://www.lancen.cn/?pagetype-bbsthread-and-tid-1489-and-page-0.html
下面我再介绍几个地址给大家看看,跟本文相关的技术文章
http://www.cnblogs.com/hermes262/archive/2006/08/17/479437.html
http://www.cnblogs.com/lovecherry/archive/2005/03/25/125525.html
http://blog.tom.com/blog/read.php?bloggerid=509720&blogid=47163
http://weekzero.cnblogs.com/archive/2006/05/16/401231.html
http://www.uuwish.com/blog/article.asp?id=183
本文虽然是我写出来的,但是代码中间却有着别人的汗水
所以我并为注名是原创,不过也希望大家多多支持
呵呵
数据表
create table Tceshi
( TCSID int identity primary key, TName varchar(20),
TPass varchar(20), TCID int)
create table Tconn
( TCID int identity primary key, TCName varchar(8))
插入数据--------[只是做个范例]
insert into Tceshi values ('aaa','aaa','1')
insert into Tceshi values ('bbb','bbb','2')
insert into Tceshi values ('ccc','ccc','1')
insert into Tceshi values ('ddd','ddd','2')
前台代码[HTML]
abel ID="lbltname" runat="server" Text='
'>abel>
abel ID="lbltpass" runat="server" Text='
'>abel>
abel ID="lbltcname" runat="server" Text='
'>abel>
ropDownList DataTextField='TCID' DataValueField='TCName' ID="ddltcname" runat="server" Width="100px">
ropDownList>
后台绑定数据[.CS]
public DataSet getTceshi()//获取数据
{
string cmdtext = "select TCSID,TName,TPass,TCName,Tconn.TCID from Tceshi,Tconn where Tceshi.TCID=Tconn.TCID";
SqlConnection conn = new SqlConnection("data source=.;database=CeShi;Trusted_Connection=yes");
SqlDataAdapter da = new SqlDataAdapter(cmdtext, conn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
-----------------------------------------------------------
private void BindDB()
{
this.GV.DataSource = getTceshi();
this.GV.DataBind();
}
---------------------------------------------------------取消更新
protected void GV_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GV.EditIndex = -1;
BindDB();
}
-------------------------------------------------------
下面这段代码稍微解释下
进入编辑状态后dropdownlist要绑定数据库中相对应的数据,同时在更新的时候又要可供选择来进行 更新
------------------------------------------------------
protected void GV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (((DropDownList)e.Row.FindControl("ddltcname")) != null)
{
//Label l = (Label)e.Row.FindControl("lbltcname");
DropDownList ddltcname = (DropDownList)e.Row.FindControl("ddltcname");
ddltcname.Items.Clear();
ddltcname.Items.Add(new ListItem("屏蔽", "1"));
ddltcname.Items.Add(new ListItem("非屏蔽", "2"));
//ddltcname.Items.FindByText(l.Text).Selected = true;
ddltcname.Items.FindByText(Convert.ToString(DataBinder.Eval(e.Row.DataItem,"TCName"))).Selected = true;
}
}
-----------------------------------------编辑状态
protected void GV_RowEditing(object sender, GridViewEditEventArgs e)
{
GV.EditIndex = e.NewEditIndex;
BindDB();
}
------------------------------------更新数据
protected void GV_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string sname=((TextBox)GV.Rows[e.RowIndex].FindControl("tname")).Text;
string spass=((TextBox)GV.Rows[e.RowIndex].FindControl("tpass")).Text;
string sid = ((DropDownList)GV.Rows[e.RowIndex].FindControl("ddltcname")).SelectedValue.ToString();
int id = Convert.ToInt32(sid);
int idkey = Convert.ToInt32(GV.DataKeys[e.RowIndex].Value.ToString());//获取当前行的主键
Response.Write(id);
string cmdtext = "update Tceshi set TName='"+sname+"',TPass='"+spass+"',TCID='"+id+"' where TCSID='"+idkey+"'";
SqlConnection conn = new SqlConnection("data source=.;database=CeShi;Trusted_Connection=yes");
SqlCommand comm = new SqlCommand(cmdtext, conn);
try
{
conn.Open();
comm.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
}
GV.EditIndex = -1;
BindDB();
}
---------------------------------------------
写这种文章,也许作者认为写的很清楚,因为都是根据自己的思路来写,
可能读者读起来却是很吃力
下面我再介绍几个地址给大家看看,跟本文相关的技术文章
http://www.cnblogs.com/hermes262/archive/2006/08/17/479437.html
http://www.cnblogs.com/lovecherry/archive/2005/03/25/125525.html
http://blog.tom.com/blog/read.php?bloggerid=509720&blogid=47163
http://weekzero.cnblogs.com/archive/2006/05/16/401231.html
http://www.uuwish.com/blog/article.asp?id=183
-----------------------
最后附上源代码,数据库的话,就自己在数据库环境下执行就可以了
里面的连接数据库字段希望各位自己提取出来,这样很浪费资源的
我就不提取了
重新加了性别列----------------所以数据库也相应的改下
create table Tceshi
( TCSID int identity primary key,TName varchar(20), TPass varchar(20), TSex bit, TCID int)
--------------------------------
getTceshi()方法中的查询语句也增加相应的列
select TCSID,TName,TPass,TCName,TSex,Tconn.TCID from Tceshi,Tconn where Tceshi.TCID=Tconn.TCID
-------------------------------------------
-------------------------------全选列
Text="全选" />
---------------------------------------------------------------后台代码[.CS]----------------------------------全选代码
protected void chkall_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkall= (CheckBox)sender;
if (chkall.Text == "全选")
{
foreach (GridViewRow gr in GV.Rows)
{
CheckBox chb = (CheckBox)gr.FindControl("chkone");
chb.Checked = chkall.Checked;
}
}
}
-------------------------------------加了性别这列之后,更新事件下的代码也要做相应的修改了
--------------------------------------全部代码
protected void GV_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string sname=((TextBox)GV.Rows[e.RowIndex].FindControl("tname")).Text;
string spass=((TextBox)GV.Rows[e.RowIndex].FindControl("tpass")).Text;
string sid = ((DropDownList)GV.Rows[e.RowIndex].FindControl("ddltcname")).SelectedValue.ToString();
string ssex = ((RadioButton)GV.Rows[e.RowIndex].FindControl("rbsex")).Checked?"1":"0";
int id = Convert.ToInt32(sid);
int idkey = Convert.ToInt32(GV.DataKeys[e.RowIndex].Value.ToString());//获取当前行的主键
Response.Write(id);
string cmdtext = "update Tceshi set TName='"+sname+"',TPass='"+spass+"',TCID='"+id+"',TSex='"+ssex+"' where TCSID='"+idkey+"'";
SqlConnection conn = new SqlConnection("data source=.;database=CeShi;Trusted_Connection=yes");
SqlCommand comm = new SqlCommand(cmdtext, conn);
try
{
conn.Open();
comm.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
}
GV.EditIndex = -1;
BindDB();
}