您的位置:首页 > 编程语言 > ASP

asp:Repeater 实现批量删除

2017-01-07 09:33 363 查看
1.问题,

 
在企业用户中心,无法批量删除,

这个问题看着很简单,然后处理起来却弄了好几天。

刚开始处理这个问题,我最先想到的是 ,用JS  进行传值,因为JS  界面 使用这几句话 

var aa=document.getElementsByName("ids");   

  var n=0;

  for (var i=0; i<aa.length;i++)   

    if(aa[i].checked)  n++; 

完全可以得到  每个checkbox  的id,而checkbox 的ID 对应的就是数据库每个培训班的ID  ,那么我只需要将它的ID  传到C# 后台就行了,于是花了大概一上午的时间,发现,JS 传值每次只能传一个字符串,

代码如下:

cs  界面 的page load ()方法里面

            this.ClientScript.GetPostBackEventReference(this, string.Empty);

            if (this.IsPostBack)

            {

                // Place any code that needs to be executed ONLY on a post-back here...

                string eventTarget = (this.Request["__EVENTTARGET"] == null) ? string.Empty : this.Request["__EVENTTARGET"];

                string eventArgument = (this.Request["__EVENTARGUMENT"] == null) ? string.Empty : this.Request["__EVENTARGUMENT"];

                if (eventTarget == "getValuesPostBack")

                {

                    string valueSentFromJavaScript = eventArgument;

                    //mList.Add(valueSentFromJavaScript);

                    Response.Write("<script language='javascript' type='text/javascript'>alert("+valueSentFromJavaScript+")</script>");

                }

                foreach (string valueSentFromJavaScript in mList)

              {

                  //Response.Write("<script language='javascript' type='text/javascript'>alert("+valueSentFromJavaScript+")</script>");

              }

            }

js 代码块里面写一个方法。

 __doPostBack('getValuesPostBack', num);

 每次只能传一个值 ,这就尴尬了,于是一直在找怎么传字符串,网上众说纷纭,在此过程中,我也在尝试着AJAX  怎么传参数,在JS 界面使用AJAX   并不如意,

和老师交流了一段时间,了解到使用谷歌浏览器,可以直接进行network  可以查看网页的参数提交情况,发现,选中培训班的ID  已经提交到后台去了,但是,就是无法得到它的ID  ,后来我得到这个事件的ID 。但是本界面有个尴尬的地方就是,点击批量删除按钮,始终无法跳转到页面的断点,连断点都无法进入,那还谈什么操作。,于是就看了

 <asp:Repeater ID="Repeater1" runat="server"  onitemcommand="Repeater1_ItemCommand"  >  这个标签,我尝试各种方法想粗发Repeater1_ItemCommand
这个时间,发现这个方法有点坑,只能在本界面的ItemTemplate 标签中进行触发。在其它标签中分本无法触发。如果按照老师那个想法来做,那么就必须一个按钮实现两个跳转,1.提交数据

onclick="if (GetIDS('del'))

{this.form.action='?action=del';this.form.submit()}   ,2.点击这个按钮,要进行删除操作。这就有点不好做。于是我在晚上搜了一片博客,改了一下按钮,将input
直接改成asp:Button ,在这个方法里面直接设置onclick 事件。于是在这个方法后台里面,直接使用 string argValue = Request.Form["ids"];这句话,就可以拿到选中的培训班的ID  ,于是将ID  拆分成字符串,一一的调用删除的方法。刚好完美解决。

或许批量删除这个操作,我第一次看到它看着很简单,但是真正做起来却花了两三天,当然这个途中走了不少弯路  ,毕竟在自学,都需要去试探,现在想起以前的经理跟我说的一句话,任何问题不要看着简单 就不去处理,很多时间就是很多小问题遏制自己的成长。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: