2 xinqing0623 xinqing0623 于 2016.04.26 02:24 提问

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);

        }
    }
}

7个回答

u010468676
u010468676   2016.04.26 11:07
已采纳

如果用griedview绑定数据源实现数据的增删改查,这样会有实际意义,你这样相当于删除XML文档的某一部分,实际意义并不大,
网上查一下表格的增删改查会有许多代码供你参考http://blog.csdn.net/wanglei_samrtfish/article/details/8070480
这是我随便查的你看看合不合适

showbo
showbo   Ds   Rxr 2016.04.26 09:04

删除功能一般需要结合数据库,直接html页面的dom结构数据你需要用cookie之类的记录已经被删除的行信息,然后Page_Load读取cookie对行进行删除,要不刷新或者重新访问viewstate数据丢失肯定是原始的状态

caozhy
caozhy   Ds   Rxr 2016.04.26 04:51
 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);

        }
    }
        }
xinqing0623
xinqing0623   2016.04.26 02:32

图片说明

xinqing0623
xinqing0623   2016.04.26 02:57

然后我进行修改,添加一个服务器端的控件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清空,再点击按钮,那么表格就会还原。。新人菜鸟真是十万个不懂,帮帮忙

Len_li_m
Len_li_m   2016.04.26 08:55

可以用Session传递参数
session["rowid"]=Text1.Value

Page_Load时:

if(session["rowid"] != null)
{
var p = (HtmlTableRow)this.FindControl(session["rowid"].Tostring());

        table1.Rows.Remove(p);

    }

这样可以删除一行.

如果要实现动态删除表格的行,你前台代码中的表最好用数据源动态生成.你只要对数据源操作就可以了

CSDNXIAOD
CSDNXIAOD   2016.04.26 02:31

asp.net利用json填充下拉框及js动态添加表格行、删除表格行的示例
asp.net动态创建表格
在ASP.Net中创建动态表格
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!