ASP.NET MVC图片管理(删除)

上星期发出描绘了千篇一律篇《ASP.NET
MVC图片管理(上传,预览与展示)》http://www.cnblogs.com/insus/p/4620420.html 它仅兑现了上传功能,即时预览以及显效果。今天咱们来好删除功能。

是因为图片是因二进制存储在数据库被,这样去是格外有益之。只需要去数据库记录即可。

先行以数据库创建一个仓储过程:
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

 

好几就是去了,再正常不过了,这样的宏图无半点人性化,让用户有认可或者后悔的挑选。在去的链接中,添加多一个参数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

哼了,写一个存储过程,是为批量抹使用的:
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

 

 再创一个囤积过程:
2018正版葡京赌侠诗 25

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

每当控制器中,我们多少修改一下操作:
2018正版葡京赌侠诗 27

OK了,最后一个实例动画演示就未达标了。跟方的示范是平等了。整篇中,也许还写不敷完整。但是Insus.NET所掌握的,均享受给斯,望君所有了解有收获……

以下内容于2015-07-07
14:20分丰富:
博文发表完以后,才察觉还时有发生一个多少作用尚未落实,就是当表顶放一个全选的checkbox。没有问题,现上上,让那个重新宏观:
在html修改,添加checkbox:
2018正版葡京赌侠诗 28

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

 
这时候,这个用一个动画演示:
2018正版葡京赌侠诗 30

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注