我的gridview中的行是动态添加的!添加完全部后可以批量插入数据库,但是增加了行后还能删除这行
代码如下aspx<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
GridLines="None" onrowcommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField HeaderText="sss">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("sss") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ssss">
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("ssss") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="sssss">
<ItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Eval("sssss") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ss">
<ItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Eval("ss") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName="dd" Text="X"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
删除事件代码 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "dd")
{
DataTable dt = ReadGridView();
dt.Rows.RemoveAt();
dt.AcceptChanges();
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
}问题是在dt.Rows.RemoveAt();我怎么获得触发事件button所在datarow的索引呢
代码如下aspx<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
GridLines="None" onrowcommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField HeaderText="sss">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("sss") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ssss">
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("ssss") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="sssss">
<ItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Eval("sssss") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ss">
<ItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Eval("ss") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName="dd" Text="X"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
删除事件代码 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "dd")
{
DataTable dt = ReadGridView();
dt.Rows.RemoveAt();
dt.AcceptChanges();
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
}问题是在dt.Rows.RemoveAt();我怎么获得触发事件button所在datarow的索引呢
解决方案 »
- 求救,我脑子已经转不过弯来了!!!!
- 有的asp.net网站怎么没有.cs文件?
- 无法将类型为“LoginCustomControl.WebCustomControl”的对象强制转换为类型“System.ComponentModel.Design.IDesigner”
- 如何遍历页面上所有的HtmlInputText控件,并给它们赋空值?
- 小问题,读取一定时间内的新闻总数
- 求SQL语句..................................................
- 在线紧急救火:如何将数据库中保存的图片数据导出成独立的jpg图片文件?万分感谢!!
- 简单问题---按下按钮能否转到指定的页面?
- 如何用ASP.NET访问FOXPRO2.5 ...急!在线等待!
- 急急急,一个逻辑的问题,请各位高手指教一下
- VS2005用datalist做分页效果....求高人帮忙...
- (c#,ASP。NET)TreeView控件的使用,怎么样在选择一个父节点或者是一个子节点后,添加一个新节点(可以改名),然后添加到数据库里面
iIndex=Int32.parse(e.CommandArgument);
}
catch{}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "dd")
{
DataTable dt = ReadGridView();
dt.Rows.RemoveAt();
dt.AcceptChanges();
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
}ReadGridView(): private DataTable ReadGridView()
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("sss", typeof(string)));
dt.Columns.Add(new DataColumn("ssss", typeof(string)));
dt.Columns.Add(new DataColumn("sssss", typeof(string)));
dt.Columns.Add(new DataColumn("ss", typeof(int)));
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
TextBox t1 = (TextBox)this.GridView1.Rows[i].Cells[0].FindControl("TextBox1");
TextBox t2 = (TextBox)this.GridView1.Rows[i].Cells[0].FindControl("TextBox2");
TextBox t3 = (TextBox)this.GridView1.Rows[i].Cells[0].FindControl("TextBox3");
TextBox t4 = (TextBox)this.GridView1.Rows[i].Cells[0].FindControl("TextBox4");
dr = dt.NewRow();
dr[0] = t1.Text.Trim();
dr[1] = t2.Text.Trim();
dr[2] = t3.Text.Trim();
dr[3] = t4.Text.Trim();
dt.Rows.Add(dr);
}
return dt;
}代码中我操作的都是datatable我是通过改变datatable重新绑定来实现增行的!这样不能获得datatable中的索引么???
或者谁有更好的方法实现删除行
e.CommandArgument=null无法转换int
e.RowIndex根本点不出来
可能因为我没直接操作gridview?
{
}
dt.Rows.Remove(dt.Rows.Find(1))