读书人

关于GridView空间的更新有关问题

发布时间: 2012-03-20 14:01:10 作者: rapoo

关于GridView空间的更新问题
Page_Load代码
SqlCommand cmd = new SqlCommand("select * from Teacher",conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
GridView2.DataSource = dt;
GridView2.DataBind();
this.GridView2.DataKeyNames = new string[] { "TNO" };
Html代码
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
onrowediting="GridView2_RowEditing" onrowupdating="GridView2_RowUpdating"
Width="586px" onrowcancelingedit="GridView2_RowCancelingEdit"
onrowdeleting="GridView2_RowDeleting">
<Columns>
<asp:BoundField HeaderText="教师ID" DataField="TNO"/>
<asp:BoundField HeaderText="教师姓名" DataField="TNAME"/>
<asp:BoundField HeaderText="性别" DataField="TSEX" />
<asp:BoundField HeaderText="生日" DataField="TBIRTHDAY" />
<asp:BoundField HeaderText="职称" DataField="PROF" />
<asp:BoundField HeaderText="所属系部" DataField="DEPART" />
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>
后台代码
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{

string TID = GridView2.DataKeys[e.RowIndex].Value.ToString();
string tName = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString();
string sex = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString();
string birthday = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[3].Controls[0])).Text;
DateTime dt =Convert.ToDateTime(birthday);
string status = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString();
string depart = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString();
string sql = "update teacher set Tname='"+tName.Trim()+"',tsex='"+sex.Trim()+"',tbirthday='"+DateTime.Now+"',prof='"+status.Trim()+"',depart='"+depart.Trim()+"' where TNO='"+TID+"'";
SqlCommand cmd = new SqlCommand(sql,conn);
conn.Open();

cmd.ExecuteNonQuery();


Response.Write("修改成功!");
conn.Close();
cmd.Dispose();
GridView2.EditIndex = -1;
Bonding();



}
public void Bonding()
{
SqlCommand cmd = new SqlCommand("select * from Teacher", conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
DataSet ds = new DataSet();
da.Fill(dt);
GridView2.DataSource = dt;
GridView2.DataBind();
this.GridView2.DataKeyNames = new string[] { "TNO" };

}
在执行更新的时候没有报错,但是只能获得TID和dt
其他的Tname,sex等都不能获得,不知是什么原因
试过网上的方法改成
GridView2.Rows[e.RowIndex]["字段"].toString()


GridView2.Ros[e.RowIndex].cell[1].Text.toString()都不行
请大家帮忙

[解决办法]
可以看例子
http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.gridview.rowupdating.aspx
[解决办法]
string serialno =((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text.Trim() ;
[解决办法]
没有问题
[解决办法]

你试试这种写法 我举一个TextBox为例子 看能不能成功!!

C# code
 TextBox pbTxtBox = (TextBox)gvWageBase.Rows[e.RowIndex].FindControl("TxtPayment");        string PaymentBase = pbTxtBox.Text; string SQL = "update [Crm_WagePaymentBase] set[PaymentBase]='" + PaymentBase + "', [PensionBase]='" + Pension + "', [FertilityBase]='" + Fertility + "', [MedicalBase]='" + Medical + "' where BaseID='" + BaseID + "'"; 

读书人网 >asp.net

热点推荐