当点击表格的某行时,将该行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
这是我随便查的你看看合不合适
然后我进行修改,添加一个服务器端的控件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清空,再点击按钮,那么表格就会还原。。新人菜鸟真是十万个不懂,帮帮忙
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);
}
}
}
可以用Session传递参数
session["rowid"]=Text1.Value
Page_Load时:
if(session["rowid"] != null)
{
var p = (HtmlTableRow)this.FindControl(session["rowid"].Tostring());
table1.Rows.Remove(p);
}
这样可以删除一行.
如果要实现动态删除表格的行,你前台代码中的表最好用数据源动态生成.你只要对数据源操作就可以了
删除功能一般需要结合数据库,直接html页面的dom结构数据你需要用cookie之类的记录已经被删除的行信息,然后Page_Load读取cookie对行进行删除,要不刷新或者重新访问viewstate数据丢失肯定是原始的状态