为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET实现添加,更新,删除和用DataList显示图片

标签:
JavaScript

最近一个专案(VB.NET)中,其中有一个功能,就是让用户在后台管理跑马灯图片。可以实现上传图片,更新图片和删除图片。Insus.NET使用asp.net的asp:FileUpload来上传与使用asp:DataList来显示。上传,显示与删除图片也许对大家来说没有什么困难,此篇博文是分享更新图片的功能。首先选择DataList的某一张图片,然后为更新选择图片文件,最后进行更新。先看演示动画:

 

 

为DataList写一个事件:OnItemCreated="DataListGallery_ItemCreated"
在vb.net写这个事件:

5acf07280001405b00110016.jpgView Code Protected Sub DataListGallery_ItemCreated(sender As Object, e As DataListItemEventArgs)
        '判断编辑铵钮是否是在DataList的AlternatingItem或是Item内。
        If e.Item.ItemType = ListItemType.AlternatingItem OrElse e.Item.ItemType = ListItemType.Item Then
            '编辑铵钮对象是否为空
            If e.Item.FindControl("ImageButtonEdit") IsNot Nothing Then
                '不为空的话,把对象转为ImageButton控件
                Dim ImageButtonEdit As ImageButton = DirectCast(e.Item.FindControl("ImageButtonEdit"), ImageButton)
                '为ImageButton写Click事件。
                AddHandler ImageButtonEdit.Click, AddressOf ImageButtonEdit_Click
            End If
        End If
    End Sub

 

当用户click时,需要改变当前栏位背景Color,还有一个重点的地方,是要获取图片的主键,并用session保存起来。

5acf07280001405b00110016.jpgView Code Private Sub ImageButtonEdit_Click(sender As Object, e As ImageClickEventArgs)
        '把sender对象转换为ImageButton控件
        Dim imageButton As ImageButton = DirectCast(sender, ImageButton)
        '把ImageButton控件的Parent控件转为DataListItem
        Dim dataListItem As DataListItem = DirectCast(imageButton.Parent, DataListItem)
        '改变栏位背景Color
        dataListItem.BackColor = Drawing.Color.Red
        '获取主键关保存至Session中
        Session("SlideMarqueeGalleryId") = Me.DataListGallery.DataKeys(dataListItem.ItemIndex).ToString()
    End Sub

 

 更新事件:

5acf07280001405b00110016.jpgView Code  Protected Sub btnUpdate_Click(sender As Object, e As EventArgs)
        '如果用户没有选择将要编辑的图片,提示用户选择。Session为空,即是用户没有选择图片
        If String.IsNullOrEmpty(DirectCast(Session("SlideMarqueeGalleryId"), String)) Then
            objInsusJsUtility.JsAlert("选择将要编辑的图片。")
            Return
        End If

        '判断是否有选择图片
        If Not Me.FileUpload2.HasFile Then
            objInsusJsUtility.JsAlert("选择上传文件。")
            Return
        End If

        '使用IO名称空间下Path静态方法GetExtension()获取图片的扩展名,也就是获取图片格式
        Dim extension As String = System.IO.Path.GetExtension(Me.FileUpload2.PostedFile.FileName)

        '创建文件名,包括路径
        Dim newFileName As String = Guid.NewGuid().ToString() & extension
        '创建文件,存储在专案中临时目录中
        Dim file As String = Server.MapPath(InsusBase.TemporaryDirectory() & newFileName)
        '保存文件
        Me.FileUpload2.SaveAs(file)

        '判断是否为图片,此方法参考:http://www.cnblogs.com/insus/archive/2012/03/08/2385054.html
        If Not IsImage(file) Then
            objInsusJsUtility.JsAlert("选择图片格式文件再上传。")
            Return
        End If

        '把文件转为流
        Dim stm As Stream = Me.FileUpload2.PostedFile.InputStream
        Try
            objSlideMarqueeGallery.Update(extension, stm, DirectCast(Session("SlideMarqueeGalleryId"), String))
            Data_Binding()
            objInsusJsUtility.JsAlert("图片成功上传。")

        Catch ex As Exception
            objInsusJsUtility.JsAlert(ex.Message)
        End Try
        '上传更新成功之后,要清除Session
        Session("SlideMarqueeGalleryId") = Nothing
    End Sub

 

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消