4

我需要找到一种方法来动态启用或禁用剑道上传:

  @(Html.Kendo().Upload()
        .Enable(false)
        .Name("attachments_" + item.QuestionId)
        .ShowFileList(true)
            .TemplateId("fileTemplate")
        .Async(a => a
             .Save("SaveAttachment", "Attachment", new { evaluationId = ViewBag.EvaluationId, questionId = item.QuestionId })
             .Remove("RemoveAttachment", "Attachment", new { evaluationId = ViewBag.EvaluationId, questionId = item.QuestionId })
             .AutoUpload(true)
        )
        .Files(files =>
        {
            if ((IList<dynamic>)ViewData["Attachment_" + item.QuestionId] != null)
            {
                foreach (var f in (IList<dynamic>)ViewData["Attachment_" + item.QuestionId])
                {
                    files.Add().Name(f.Name).Extension(f.Extension).Size(f.Size);
                }
            }
        })
)

我怎样才能做到这一点?

我尝试将 .Enable 设置为:

.Enable(bool.Parse(ViewBag.AllowEdit))

它抛出了一个错误:

“/”应用程序中的服务器错误。编译错误描述:在编译服务此请求所需的资源期间发生错误。请查看以下特定错误详细信息并适当修改您的源代码。

编译器错误消息:CS1977:无法使用 lambda 表达式作为动态分派操作的参数,除非先将其转换为委托或表达式树类型

源错误:

第 95 行:.ShowFileList(true) 第 96 行:.TemplateId("fileTemplate") 第 97 行:.Async(a => a 第 98 行:.Save("SaveAttachment", "Attachment", new { evaluationId = ViewBag.EvaluationId, questionId = item.QuestionId }) 第 99 行:.Remove("RemoveAttachment", "Attachment", new { evaluationId = ViewBag.EvaluationId, questionId = item.QuestionId })

有没有更简单的方法来做到这一点?

4

2 回答 2

2

首先转换 ViewBag 变量。

.Enable(bool.Parse((string)ViewBag.AllowEdit))

于 2014-02-05T18:12:23.673 回答
1

使用 Kendo 上传控件需要注意的一件事是,即使它被禁用,用户仍然可以将文件拖放到上面。有一种方法可以始终禁用拖放功能:剑道论坛

我没有尝试这种解决方法,因为我想在启用控件时允许它。

于 2014-02-13T18:19:25.383 回答