一、前台
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="sample_Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="gvStudent" runat="server" AutoGenerateColumns="False" DataKeyNames="sid"
OnRowEditing="gvStudent_RowEditing" OnRowCancelingEdit="gvStudent_RowCancelingEdit"
OnRowUpdating="gvStudent_RowUpdating" Width="100%">
<Columns>
<asp:CommandField HeaderText="编辑" ShowEditButton="True" >
<HeaderStyle Width="90px" />
<ItemStyle Width="90px" />
</asp:CommandField>
<asp:TemplateField HeaderText="编号" Visible="False">
<ItemTemplate>
<%# Eval("sid") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<table frame="void" border="1px" cellspacing="0" width="100%">
<tr>
<td>
姓名
</td>
<td>
<%# Eval("sname") %>
</td>
</tr>
<tr>
<td>
性别
</td>
<td>
<%# Eval("gender") %>
</td>
</tr>
<tr>
<td>
年龄
</td>
<td>
<%# Eval("age") %>
</td>
</tr>
</table>
</ItemTemplate>
<EditItemTemplate>
<table frame="void" border="1px" cellspacing="0" width="100%">
<tr>
<td>姓名</td>
<td>
<asp:TextBox ID="txtSname" runat="server" Text='<%# Eval("sname") %>'></asp:TextBox>
</td>
</tr>
<tr>
<td>性别</td>
<td>
<asp:TextBox ID="txtGender" runat="server" Text='<%# Eval("gender") %>'></asp:TextBox>
</td>
</tr>
<tr>
<td>年龄</td>
<td>
<asp:TextBox ID="txtAge" runat="server" Text='<%# Eval("age") %>'></asp:TextBox>
</td>
</tr>
</table>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:GridView>
</div>
<div>
</div>
</form>
</body>
</html>
二、后台
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using Model;
public partial class sample_Default2 : System.Web.UI.Page
{
private Student stu = new Student();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BinGrid();
}
}
private void BinGrid()
{
gvStudent.DataSource = stu.Student_Select();
gvStudent.DataBind();
}
protected void gvStudent_RowEditing(object sender, GridViewEditEventArgs e)
{
gvStudent.EditIndex = e.NewEditIndex;
BinGrid();
}
protected void gvStudent_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
StudentInfo info = new StudentInfo();
info.Sid = int.Parse(gvStudent.DataKeys[e.RowIndex].Value.ToString());
info.Sname = ((TextBox)(gvStudent.Rows[e.RowIndex].Cells[1].FindControl("txtSname"))).Text;
info.Gender = ((TextBox)(gvStudent.Rows[e.RowIndex].Cells[1].FindControl("txtGender"))).Text;
info.Age = byte.Parse(((TextBox)(gvStudent.Rows[e.RowIndex].Cells[1].FindControl("txtAge"))).Text);
gvStudent.EditIndex = -1;
int rowCount = stu.Student_Update(info);
if (rowCount > 0)
{
BinGrid();
}
}
protected void gvStudent_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvStudent.EditIndex = -1;
BinGrid();
}
}
注意:GridView是一个大table,而嵌套的table中的内容算在大table的单元格内。如果要查找嵌套的table中的内容(如文本框中的文本),就需要先看该文本框在大table的那个单元格内,找到该单元格,然后在该单元格内查找该文本框控件。