DataGridView增加新行的问题 就是要在指定的位置增加新行,不要在最后增加。网上这样的帖子也没好的回答,请高手帮忙。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("str1") %>'></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("str2") %>'></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:TextBox ID="TextBox3" runat="server" Text='<%# Eval("str3") %>'></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="增加行" /> <asp:Button ID="Button2" runat="server" Text="删除行" onclick="Button2_Click" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataTable dt = new DataTable(); dt.Columns.Add("str1"); dt.Columns.Add("str2"); dt.Columns.Add("str3"); for (int i = 0; i < 5; i++) { DataRow dr = dt.NewRow(); dt.Rows.Add(dr); } this.GridView1.DataSource = dt; this.GridView1.DataBind(); } } protected void Button1_Click(object sender, EventArgs e) { // 行号 int row = ((GridViewRow)((Button)sender).NamingContainer).RowIndex; DataTable dt = new DataTable(); dt.Columns.Add("str1"); dt.Columns.Add("str2"); dt.Columns.Add("str3"); foreach (GridViewRow item in this.GridView1.Rows) { DataRow dr = dt.NewRow(); dr["str1"] = ((TextBox)item.Cells[0].FindControl("TextBox1")).Text; dr["str2"] = ((TextBox)item.Cells[0].FindControl("TextBox2")).Text; dr["str3"] = ((TextBox)item.Cells[0].FindControl("TextBox3")).Text; dt.Rows.Add(dr); } dt.Rows.InsertAt(dt.NewRow(), row+1); this.GridView1.DataSource = dt; this.GridView1.DataBind(); } protected void Button2_Click(object sender, EventArgs e) { // 行号 int row = ((GridViewRow)((Button)sender).NamingContainer).RowIndex; DataTable dt = new DataTable(); dt.Columns.Add("str1"); dt.Columns.Add("str2"); dt.Columns.Add("str3"); foreach (GridViewRow item in this.GridView1.Rows) { DataRow dr = dt.NewRow(); dr["str1"] = ((TextBox)item.Cells[0].FindControl("TextBox1")).Text; dr["str2"] = ((TextBox)item.Cells[0].FindControl("TextBox2")).Text; dr["str3"] = ((TextBox)item.Cells[0].FindControl("TextBox3")).Text; dt.Rows.Add(dr); } dt.Rows.RemoveAt(row); this.GridView1.DataSource = dt; this.GridView1.DataBind(); } 绑定DataGridView的table有Rows.InsertAt(Row,Index),可以加到任意位置,然后重新绑定到DataGridView可实现你要的效果 protected void Button1_Click(object sender, EventArgs e) { // 行号 int row = ((GridViewRow)((Button)sender).NamingContainer).RowIndex; DataTable dt = new DataTable(); dt.Columns.Add("str1"); dt.Columns.Add("str2"); dt.Columns.Add("str3"); foreach (GridViewRow item in this.GridView1.Rows) { DataRow dr = dt.NewRow(); dr["str1"] = ((TextBox)item.Cells[0].FindControl("TextBox1")).Text; dr["str2"] = ((TextBox)item.Cells[1].FindControl("TextBox2")).Text; dr["str3"] = ((TextBox)item.Cells[2].FindControl("TextBox3")).Text; dt.Rows.Add(dr); } dt.Rows.InsertAt(dt.NewRow(), row+1); this.GridView1.DataSource = dt; this.GridView1.DataBind(); } protected void Button2_Click(object sender, EventArgs e) { // 行号 int row = ((GridViewRow)((Button)sender).NamingContainer).RowIndex; DataTable dt = new DataTable(); dt.Columns.Add("str1"); dt.Columns.Add("str2"); dt.Columns.Add("str3"); foreach (GridViewRow item in this.GridView1.Rows) { DataRow dr = dt.NewRow(); dr["str1"] = ((TextBox)item.Cells[0].FindControl("TextBox1")).Text; dr["str2"] = ((TextBox)item.Cells[1].FindControl("TextBox2")).Text; dr["str3"] = ((TextBox)item.Cells[2].FindControl("TextBox3")).Text; dt.Rows.Add(dr); } dt.Rows.RemoveAt(row); this.GridView1.DataSource = dt; this.GridView1.DataBind(); } int a;int b;与int a, b;的不同? 怎样用c#的来建立exe dll呢?能不能举例啊? 请问C#怎么抓取网页的内容。 在线问sql语句 急 "Hibernate比ADO.NET起码强几个数量级"??? 在C#的Winform中一个dataGrid更新问题 关于委托的问题,高手来帮帮忙我这个新手嘎,谢谢啦 c# 如何实现正则表达式查找,并按一定的替换规则进行替换 在vs环境里面怎么引用一个资源文件?不是具体语句,是怎么引用或者嵌入? Pattern和C#的文章,还有许多Pattern的文章在 VS的安装项目的问题 二进制转换成十六进制
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("str1") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("str2") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Eval("str3") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="增加行" />
<asp:Button ID="Button2" runat="server" Text="删除行" onclick="Button2_Click" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("str1");
dt.Columns.Add("str2");
dt.Columns.Add("str3");
for (int i = 0; i < 5; i++)
{
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
}
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
} protected void Button1_Click(object sender, EventArgs e)
{
// 行号
int row = ((GridViewRow)((Button)sender).NamingContainer).RowIndex;
DataTable dt = new DataTable();
dt.Columns.Add("str1");
dt.Columns.Add("str2");
dt.Columns.Add("str3");
foreach (GridViewRow item in this.GridView1.Rows)
{
DataRow dr = dt.NewRow();
dr["str1"] = ((TextBox)item.Cells[0].FindControl("TextBox1")).Text;
dr["str2"] = ((TextBox)item.Cells[0].FindControl("TextBox2")).Text;
dr["str3"] = ((TextBox)item.Cells[0].FindControl("TextBox3")).Text;
dt.Rows.Add(dr);
}
dt.Rows.InsertAt(dt.NewRow(), row+1);
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
} protected void Button2_Click(object sender, EventArgs e)
{
// 行号
int row = ((GridViewRow)((Button)sender).NamingContainer).RowIndex;
DataTable dt = new DataTable();
dt.Columns.Add("str1");
dt.Columns.Add("str2");
dt.Columns.Add("str3");
foreach (GridViewRow item in this.GridView1.Rows)
{
DataRow dr = dt.NewRow();
dr["str1"] = ((TextBox)item.Cells[0].FindControl("TextBox1")).Text;
dr["str2"] = ((TextBox)item.Cells[0].FindControl("TextBox2")).Text;
dr["str3"] = ((TextBox)item.Cells[0].FindControl("TextBox3")).Text;
dt.Rows.Add(dr);
}
dt.Rows.RemoveAt(row);
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
// 行号
int row = ((GridViewRow)((Button)sender).NamingContainer).RowIndex;
DataTable dt = new DataTable();
dt.Columns.Add("str1");
dt.Columns.Add("str2");
dt.Columns.Add("str3");
foreach (GridViewRow item in this.GridView1.Rows)
{
DataRow dr = dt.NewRow();
dr["str1"] = ((TextBox)item.Cells[0].FindControl("TextBox1")).Text;
dr["str2"] = ((TextBox)item.Cells[1].FindControl("TextBox2")).Text;
dr["str3"] = ((TextBox)item.Cells[2].FindControl("TextBox3")).Text;
dt.Rows.Add(dr);
}
dt.Rows.InsertAt(dt.NewRow(), row+1);
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
} protected void Button2_Click(object sender, EventArgs e)
{
// 行号
int row = ((GridViewRow)((Button)sender).NamingContainer).RowIndex;
DataTable dt = new DataTable();
dt.Columns.Add("str1");
dt.Columns.Add("str2");
dt.Columns.Add("str3");
foreach (GridViewRow item in this.GridView1.Rows)
{
DataRow dr = dt.NewRow();
dr["str1"] = ((TextBox)item.Cells[0].FindControl("TextBox1")).Text;
dr["str2"] = ((TextBox)item.Cells[1].FindControl("TextBox2")).Text;
dr["str3"] = ((TextBox)item.Cells[2].FindControl("TextBox3")).Text;
dt.Rows.Add(dr);
}
dt.Rows.RemoveAt(row);
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}