【问题标题】:Use AsyncFileUpload in a grid view in update panel在更新面板的网格视图中使用 AsyncFileUpload
【发布时间】:2014-03-10 04:59:27
【问题描述】:

我想在网格视图中使用 AsyncFileUpload,并且每条记录必须单独有一个 AsyncFileUpload。此外,用户必须能够为每条记录上传他/她的文件。 现在我如何在网格视图中访问 AsyncFileUpload 并检查它是否有文件? 对于常见的文件上传,我使用了以下代码:

((FileUpload)GridView1.Rows[idx].Cells[0].FindControl("FileUpload1") as FileUpload).HasFile

但是,在这种情况下是不可接受的。 有没有办法在网格视图中访问这个 Ajax 控制器?

【问题讨论】:

    标签: asp.net ajax gridview asyncfileupload


    【解决方案1】:

    在您的 asyncfileupload 上将 OnUploadedComplete 事件绑定到方法

    OnUploadedComplete = "FileUploded"
    

    代码:

    protected Sub FileUploded(object sender, EventArgs e)
    
        Dim fu AjaxControlToolkit.AsyncFileUpload
    
        Dim row As GridViewRow = CType(fu.NamingContainer, GridViewRow)
        Dim idx = row.RowIndex
    
        fu = ctype(sender,AjaxControlToolkit.AsyncFileUpload)
        If fu.HasFile then
        --do something--
        End If 
    End Sub
    

    c#:

    protected void FileUploded(object sender, EventArgs e)
    {
        AsyncFileUpload fu = (AjaxControlToolkit.AsyncFileUpload)sender;
    
        GridViewRow row = (GridViewRow)fu.NamingContainer;
        string idx = row.RowIndex.toString();       
    }
    

    【讨论】:

    • 谢谢,但我也需要以下代码: sqlcmd.Parameters.AddWithValue("@Upload", "~/InputReviewer/" + MainFileName) 为此我需要 idx 我应该提取它从命令按钮。我需要从表中提取 idx 并将上传文件保存在数据库中的 ID 中。有什么办法吗?
    • 我用如何获取行索引更新了代码。您可以通过这种方式提取任何列中的任何值。
    • 谢谢。只有两个问题: 1- ctype 无法识别!它需要任何命名空间吗? 2- 我应该如何用 C# 语言编写这段代码:Dim fu AjaxControlToolkit.AsyncFileUpload
    • 请再做一件事,正如我提到的 ctype 和 AsyncFileUpload 在 cod 后面无法识别!他们需要命名空间吗?
    • CType 是 vb.net,所以如果您使用 c#,请忘记它。并将其包含在您的 xaml 中: 在 xaml 中使用 ajax 作为前缀
    猜你喜欢
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 2014-01-18
    • 2015-11-03
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多