问题描述
- asp.net动态删除表格的行
- 当点击表格的某行时,将该行ID赋值给Text.value。_Page_Load里添加代码使得刷新页面时该行被删除
大神们帮帮我,是在是找不出错误来了。
就是没有办法实现删除行的功能。后天获取Text1.Value是什么都没有,为什么会这样呢_
前台代码:<%@ Page Language=""C#"" AutoEventWireup=""true"" CodeFile=""Default10.aspx.cs"" Inherits=""Default10"" %><!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""> <p> <input id=""Text1"" runat=""server"" type=""text"" onclick=""return Text1_onclick()"" /></p> <table id=""table1"" runat=""server"" width=""100%"" border=""1""> <tr id=""row1"" runat=""server"" onclick=""Text1.value=(this.id)""> <td>第一行</td> </tr> <tr id=""row2"" runat=""server"" onclick=""Text1.value=(this.id)""> <td>第二行</td> </tr> </table> </form></body></html>
.CS的代码
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;public partial class Default10 : System.Web.UI.Page{ protected void Page_Load(object sender EventArgs e) { Response.Write(Text1.Value +""aaaaaaaa""); var p = (HtmlTableRow)this.FindControl(Text1.Value); if(Text1.Value != null) { table1.Rows.Remove(p); } }}
解决方案
如果用griedview绑定数据源实现数据的增删改查,这样会有实际意义,你这样相当于删除XML文档的某一部分,实际意义并不大,
网上查一下表格的增删改查会有许多代码供你参考http://blog.csdn.net/wanglei_samrtfish/article/details/8070480
这是我随便查的你看看合不合适
解决方案二:
protected void Page_Load(object sender EventArgs e) {if (postback){ Response.Write(Text1.Value +""aaaaaaaa""); var p = (HtmlTableRow)this.FindControl(Text1.Value); if(Text1.Value != null) { table1.Rows.Remove(p); } } }
解决方案三:
删除功能一般需要结合数据库,直接html页面的dom结构数据你需要用cookie之类的记录已经被删除的行信息,然后Page_Load读取cookie对行进行删除,要不刷新或者重新访问viewstate数据丢失肯定是原始的状态
解决方案五:
然后我进行修改,添加一个服务器端的控件button。将上面PageLoad的代码剪切到按钮的click事件中。
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;public partial class Default10 : System.Web.UI.Page{ protected void Page_Load(object sender EventArgs e) { } protected void Button2_Click(object sender EventArgs e) { Response.Write(Text1.Value + ""aaaaaaaa""); var p = (HtmlTableRow)this.FindControl(Text1.Value); if (Text1.Value != null) { table1.Rows.Remove(p); } }}
然后就可以点击按钮删除了,但是只能删除一次。后面就会交换行一和行二显示。如果我把text清空,再点击按钮,那么表格就会还原。。新人菜鸟真是十万个不懂,帮帮忙
解决方案六:
可以用Session传递参数
session[""rowid""]=Text1.Value
Page_Load时:
if(session[""rowid""] != null)
{
var p = (HtmlTableRow)this.FindControl(session[""rowid""].Tostring());
table1.Rows.Remove(p); }
这样可以删除一行.
如果要实现动态删除表格的行你前台代码中的表最好用数据源动态生成.你只要对数据源操作就可以了
解决方案七:
asp.net利用json填充下拉框及js动态添加表格行、删除表格行的示例
asp.net动态创建表格
在ASP.Net中创建动态表格