gridview的多行编辑 aspxgridview 编辑

Gridview自带对数据的添加,删除,修改等,实现几乎不需要任何代码。但是这种情况下,Gridview的编辑功能,只能编辑单行数据。

下面根据一个实例演示多行编辑。

1.新建一个数据库“jp”,包含表“stus”,表的结构如下:

idname age

99001 lily 23

99002lotus 20

99003hong 25

2.新建一个网站,名为“gridviewss”;

3.在网页中添加两个GridView,同时给GridView1配置数据源,方法,设置属性“DatasourseID”,选择“新建数据源”进行添加。

源代码为: <asp:SqlDataSource ID="SqlDataSource1"runat="server" ConnectionString="<%$ConnectionStrings:jpConnectionString %>"
gridview的多行编辑 aspxgridview 编辑
SelectCommand="SELECT * FROM[stus]"></asp:SqlDataSource>
<br />

4.GridView2用来编辑数据,需要为其设置模板,最终源代码为:

</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1"runat="server" ConnectionString="<%$ConnectionStrings:jpConnectionString %>"
SelectCommand="SELECT * FROM[stus]"></asp:SqlDataSource>
<br />
<asp:LinkButton ID="LinkButton1" runat="server"OnClick="LinkButton1_Click">编辑</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server"OnClick="LinkButton2_Click">保存</asp:LinkButton></div>
<asp:GridView ID="GridView2" runat="server">
<Columns>
<asp:TemplateFieldHeaderText="id">

<ItemTemplate>
<asp:TextBox ID="TextBox1" Text ='<%#Bind("id") %>'runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateFieldHeaderText="姓名">
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server"Text='<%# Bind("name")%>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateFieldHeaderText="年龄">
<ItemTemplate>
<asp:TextBox ID="TextBox3" runat="server"Text='<%# Bind("age")%>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

5.页面的最终设计效果

6.代码视图下,在页面加载时,缓存数据表信息,代码如下:

protected void Page_Load(object sender,EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();//创建表,并构建结构
dt.Columns.Add("id");
dt.Columns.Add("name");
dt.Columns.Add("age");
foreach (GridViewRow gvr in GridView1.Rows)//添加表的内容;
{
dt.Rows.Add(gvr.Cells[0].Text, gvr.Cells[1].Text,gvr.Cells[2].Text);

}
dt.AcceptChanges();
Session["Data"] = dt;//缓存表
}

7.双击“编辑”按钮,切换到其click代码视,代码如下:

protected voidLinkButton1_Click(object sender, EventArgs e)
{
GridView1.Visible = false;
GridView2.Visible = true;
DataTable mydt = new DataTable();
mydt = (DataTable)Session["Data"];
GridView2.DataSource = mydt;
GridView2.DataBind();
}

8.双击“保存”按钮,代码如下:

protected void LinkButton2_Click(object sender, EventArgse)
{
GridView2.Visible = false;
GridView1.Visible = true;
DataTable dt=new DataTable();//重新构建表
dt.Columns.Add("id");
dt.Columns.Add("name");
dt.Columns.Add("age");
foreach (GridViewRow gvr in GridView2.Rows)//获取修改后的内容
{
dt.Rows.Add(((TextBox)gvr.Cells[0].FindControl("TextBox1")).Text,((TextBox)gvr.Cells[1].FindControl("TextBox2")).Text,((TextBox)gvr.Cells[2].FindControl("TextBox3")).Text);
// dt.Rows.Add(((TextBox)gvr.Cells[0].FindControl("TextBox1")).Text,((TextBox)gvr.Cells[1].FindControl("TextBox2")).Text,((TextBox)gvr.Cells[2].FindControl("TextBox3")).Text);
}
dt.AcceptChanges();
GridView1.DataSourceID = "";//去除旧绑定
GridView1.DataSource = dt;//重新绑定
GridView1.DataBind();
}

注意:基实编辑和显示是在两个gridview之间进行切换。

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/94997.html

更多阅读

怎么样查看路由器的IP地址的多个方法 查看路由器的ip地址

怎么样查看路由器的IP地址的多个方法——简介如何查看自己所以用的路由器的IP地址,这个应该是很多人不清楚的地方,结合自己的经验和所了解的信息,今天就分享下四个常规的了解查看到路由器IP地址的方法,这样的话,就不会再困惑,可以了解到

Linux和windows中的换行符差异问题 windows 换行符

LINUX的换行符在Windows记事本打开不换行或出现黑点是由于Linux和windows中的换行符差异问题造成的。首先来看回车符号和换行符号产生背景关于“回车”(carriage return)和“换行”(linefeed)这两个概念的来历和区别。在计算机还没有出

逍遥刘强的多点共振交易系统 时间周期共振交易系统

多点共振交易系统包括投机哲学.大局观.基本面分析.技术分析.交易规则和交易心态几大部分。当道几部分发生共振时,才是比较好的交易机会。需要强调的是,每个人部可以设计自己的多点共振,我的只是参考,只有你自己总结出来的多点共振才是真

夏季全休眠时多肉要喷水吗? 夏季不休眠的多肉

栽培,人们普遍感到困难的是如何使一些有夏休眠习性的种类安全度过夏天。进入夏季全休眠的多肉要喷水吗,所指的傍晚喷喷水是指夏季进入全休眠的多肉植物,对那些在夏季用此法则是保守法,总比那些初养者因怕浇水而不浇水要好!我有个特

声明:《gridview的多行编辑 aspxgridview 编辑》为网友葉草分享!如侵犯到您的合法权益请联系我们删除