我的情况是这样的:
我简单的用GridView绑定了A表中的数据,现在想在GridView每一行中加一个button,点击button后将那一行的数据写入B表中
这是我最终实现的目的
现在我把那个button加到了模板里,双击后可以在后台写插入B表的代码,问题是如何获取GridView中每行每一项的值??
请高手们帮忙!
谢谢!
我简单的用GridView绑定了A表中的数据,现在想在GridView每一行中加一个button,点击button后将那一行的数据写入B表中
这是我最终实现的目的
现在我把那个button加到了模板里,双击后可以在后台写插入B表的代码,问题是如何获取GridView中每行每一项的值??
请高手们帮忙!
谢谢!
CommandName ="Update"
这是前台设置
后台
e.CommandArgument 用这个获取参数
protected void Button1_Click(object sender, EventArgs e)
<asp:Button ID="Button1" runat="server" Text="Button" CommandName="Go" CommandArgument='<%# Container.DisplayIndex %>' />
</ItemTemplate>
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Go")
{
GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].Text; //第一列值
}
}
能详细些吗?谢谢!
{ Button bt = (Button)sender;获得你点击的那个BUTTON
GridViewRow gv = (GridViewRow)bt.Parent.Parent;//这就是你要的那一行的数据
.....然后就做你要做的操作!!
<asp:Button ID="Button1" runat="server" Text="Button" CommandName="select" />
</ItemTemplate>protected void GridView1_SelectIndexChanging(object sender, GridViewEventArgs e)
{
string str=GridView1.rows[e.NewIndex].cells[1].text; 取单元格的值(用于绑定列)
string str=((TextBox)(GridView1.rows[e.NewIndex].FindControl('txtbox')).text; 取控件的值.(用于模版列)
string id=GridView1.DataKeys[e.NewIndex].toString(); 取此行的主键
//以下拼SQL语句
}
{
if (e.CommandName == "Go")
{
GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].Text; //第一列值
}
}
前者第一页就是1-15,翻页就是15-20
后者就是1-15,然后翻页1-5
而DataItemIndex呢,翻到第二页点第一条记录时返回的是10,也就是说DataItemIndex返回的是全部数据从0开始的索引。
DisplayIndex返回的是当前页从0开始的索引。
这个方法是最好的,你可以把你的A表中的主键值绑定到button的其他属性上,比如:cssname等,
然后再根据条件查询A表同时插入B表