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 拆分成字符串,一一的调用删除的方法。刚好完美解决。
或许批量删除这个操作,我第一次看到它看着很简单,但是真正做起来却花了两三天,当然这个途中走了不少弯路 ,毕竟在自学,都需要去试探,现在想起以前的经理跟我说的一句话,任何问题不要看着简单 就不去处理,很多时间就是很多小问题遏制自己的成长。
在企业用户中心,无法批量删除,
这个问题看着很简单,然后处理起来却弄了好几天。
刚开始处理这个问题,我最先想到的是 ,用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 拆分成字符串,一一的调用删除的方法。刚好完美解决。
或许批量删除这个操作,我第一次看到它看着很简单,但是真正做起来却花了两三天,当然这个途中走了不少弯路 ,毕竟在自学,都需要去试探,现在想起以前的经理跟我说的一句话,任何问题不要看着简单 就不去处理,很多时间就是很多小问题遏制自己的成长。
相关文章推荐
- asp.net repeater实现批量删除时注册多选框id到客户端
- asp.net repeater实现批量删除第1/2页
- asp.net repeater实现批量删除时注册多选框id到客户端
- JQuery实现Repeater无刷新批量删除(附后台asp.net源码)
- JQuery实现Repeater无刷新批量删除(附后台asp.net源码)
- asp.net repeater实现批量删除第1/2页
- asp+jquery实现批量删除数据
- asp.net 通过js实现批量删除和全选
- ASP.NET给DataGrid,Repeater等添加全选批量删除等功能
- Repeater实现批量删除
- asp 批量删除选中的多条记录的实现代码
- ASP.NET巧妙利用repeater控件和checkBox控件实现批量操作
- JQuery实现Repeater无刷新批量删除(附源码)
- .Net实现的批量删除(使用了repeater控件)
- 批量删除记录时如何实现全选方法总结 (转)http://www.cnblogs.com/chenou/articles/1349646.html[Asp.net Ajax 控件]
- ASP.NET给DataGrid,Repeater等添加全选批量删除等功能(转)
- ASP.NET巧妙利用repeater控件和checkBox控件实现批量操作
- 用实现ASP批量删除目录及文件的代码
- asp.net下gridview 批量删除的实现方法第1/3页
- asp实现批量删除选中的多条记录