2018正版葡京赌侠诗ASP.NET MVC图片管理(删除)

上星期有写了一篇《ASP.NET
MVC图片管理(上传,预览与呈现)
http://www.cnblogs.com/insus/p/4620420.html 它只兑现了上传成效,即时预览以及浮现效果。今日大家来达成删除功能。

出于图片是以二进制存款和储蓄在数据库中,那样删除是很有益的。只需删除数据库记录即可。

先在数据库创制2个仓库储存进度:
2018正版葡京赌侠诗 1

2018正版葡京赌侠诗 22018正版葡京赌侠诗 3

CREATE PROCEDURE [dbo].[usp_ImageStore_Delete]
(
    @ImageStore_nbr INT
)
AS
DELETE FROM [dbo].[ImageStore] WHERE [ImageStore_nbr] = @ImageStore_nbr
GO

View Code

在实业Entity中创造删除方法,程序与数据库调换。
2018正版葡京赌侠诗 4

接下去,还索要在控制器制造Action操作:
2018正版葡京赌侠诗 5

在#70代码中,由于大家利用链接来完毕删除,没有post数据,由此操作不接纳品质HttpPost。如若你利用的话,删除会有相当:The
resource cannot be found.
2018正版葡京赌侠诗 6

好了,在视图中,数据显示表,添加一列,如下高亮部位:
2018正版葡京赌侠诗 7

以身作则一下:

 2018正版葡京赌侠诗 8

 

一些就删除了,再不奇怪不过了,那样的安插没有半点人性化,让用户有肯定或许后悔的选拔。在剔除的链接中,添加多2个参数htmlAttributes:
2018正版葡京赌侠诗 9

再看看效果:

 2018正版葡京赌侠诗 10

 
一笔一笔记录删除,就如有些然而隐,Insus.NET下边做二个批量去除演示。
福寿双全那么些效果,须求考虑一下,如何处理选取的笔录的主键值,收集与仓库储存,以何格局传入至数据中去。ASP.NET
MVC 做铵钮删除:

<input id="Button1" type="button" value="Delete" />

早已不是ASP.NET Form的Web
Control。那是客户端标签,那就采取jQuery实现吗。

咱俩照旧按上边的逐一,先在数据库层出手,写存款和储蓄进程或处理传入的字符串起初。由于大家传入的字符串,如“2,5,4,10,25”
,写三个函数,把那几个字符转换为一张数据表:
2018正版葡京赌侠诗 11

好了,写2个存款和储蓄进程,是为了批量剔除使用的:
2018正版葡京赌侠诗 12

上面画红线的一对,便是上边SQL自定义函数的采用。存款和储蓄进度代码:

2018正版葡京赌侠诗 132018正版葡京赌侠诗 14

ALTER PROCEDURE [dbo].[usp_ImageStore_batchDelete]
(
    @MultiPrimaryKeyString NVARCHAR(MAX) 
)
AS
DELETE img FROM [dbo].[ImageStore] AS img 
RIGHT JOIN [dbo].[udf_SplitStringToTable](@MultiPrimaryKeyString,',') AS mpk ON (img.ImageStore_nbr = mpk.Value)

View Code

付出转至ASP.NET MVC,有Entity写批量刨除的不二法门:
2018正版葡京赌侠诗 15

 在控制器中,大家成立三个操作,为jQuery使用:
2018正版葡京赌侠诗 16

 

Ok,首要的干活依旧视图,大家必要修改html和添加jQuery代码,不急一样同样来。添加一个铵钮标签以及Checkbox:
2018正版葡京赌侠诗 17

实现jQuery代码:
2018正版葡京赌侠诗 18

运行看看是或不是达到规定的标准预期效应?
2018正版葡京赌侠诗 19

没有毛病,能健康删除记录。但是依然不曾后悔提醒,让用户确认之后,才正确删除,添加一行代码:
2018正版葡京赌侠诗 20

再也演示:

 2018正版葡京赌侠诗 21

 
jQuery Button的事件代码:

2018正版葡京赌侠诗 222018正版葡京赌侠诗 23

 $("#Button1").click(function () {
                var valList = "";
                $('input[name="imgSel"]').each(function () {
                    if (this.checked)
                        valList += ',' + $(this).val();
                });
                valList = valList.length > 0 ? valList.substring(1, valList.length) : "";


                if (valList == "") {
                    alert("Select Delete Records.");
                    return;
                }
                else {
                    if (confirm("All selected records will be delete!") == true) {
                        $.ajax({
                            type: 'POST',
                            url: '/July15/BatchDelete',
                            dataType: 'json',
                            data: JSON.stringify({
                                strPkLists: valList
                            }),
                            contentType: 'application/json; charset=utf-8',
                            success: function (data, textStatus) {
                                alert("Delete成功。");
                                location.reload();
                            },
                            error: function (XMLHttpRequest, textStatus, errorThrown) {
                                alert(errorThrown);
                            }
                        });
                    }
                }
            });

View Code

好歹,我们付出顺序,均是为着急忙与介面友好。上边批理删除,大家是把具有选用的主键值串连一起传播数据库中,那是为了快速。不必层次明显中循环分别传入数据库中去。在较高级中学一年级些本子的数据库,还有其它一法,也是Insus.NET较常用的措施。便是把装有选拔的主键值放在二个DataTable中,然后把那一个DataTable传入数据库中。

您能够有数据库自定义二个数据类型,那个连串其实正是DataTable的构造。
2018正版葡京赌侠诗 24

 

 再创造3个存储进度:
2018正版葡京赌侠诗 25

在MVC的实业(Entity)中代码参考上边#59~#78,其中#61,62是概念贰个DataTable。#64是把字符串根据“,” 分割为阵列。#66~69是循环阵列把值存储DataTable中。
2018正版葡京赌侠诗 26

在控制器中,大家稍修改一下操作:
2018正版葡京赌侠诗 27

OK了,最后一个实例动画演示就不上了。跟下面的示范是一模一样了。整篇中,恐怕还写不够完整。然而Insus.NET所明白的,均享受于此,望你有着驾驭全体收获……

以下内容于二零一五-07-07
14:十几分加上:
博文宣布完事后,才发现还有3个小效用没有兑现,正是在表顶放叁个全选的checkbox。没有毛病,现补充上来,让其更周详:
在html修改,添加checkbox:
2018正版葡京赌侠诗 28

写jQuery代码,也是一对一简单:
2018正版葡京赌侠诗 29

 
那时候,那个须求多个卡通演示:
2018正版葡京赌侠诗 30

 

相关文章