Kendo上载升级(MVC) - OnUploadSelect代码更改

时间:2014-04-07 08:43:16

标签: kendo-ui kendo-asp.net-mvc kendo-upload

使用旧版本的telerik,我们有一段代码可以找到下面给出的子节点数

function onUploadSelect(ev) {
var numberOfFiles;
if (ev.target.childNodes[1] != undefined && ev.target.childNodes[1] != null) {
    numberOfFiles = ev.target.childNodes[1].childNodes.length;
}
if ((numberOfFiles + ev.files.length) > 4) { 
//some custom validation error msgs being thrown
}
}

此代码的基本逻辑是防止上传超过4个文件, 例如 - 我选择2个文件,不要点击上传而是再次选择一个文件,然后点击上传,我很好(2 + 1< 4) 使用KEndo Uplaod,ev.target未定义, 你能建议一个可能的替代方案吗?

由于 阿达什讷

2 个答案:

答案 0 :(得分:1)

嗨,这就是你想要的,

function onSelect(e) {
  var ct = $('#Count').val();
  if (e.files.length > 4) {
   alert("Please select max 4 files.");
   e.preventDefault();
  }
  else {
   ct= parseInt(ct == "" ? 0 : ct);
   $('#Count').val(ct + e.files.length);
  }
}

@Html.Hidden("Count")

限制用户不要上传超过4个文件。如果我理解正确。

答案 1 :(得分:1)

请尝试使用以下代码段。

<强>剑道-HTML

<!DOCTYPE html>
<html>
<head> 
<title>Test</title>
<link href="http://cdn.kendostatic.com/2014.1.318/styles/kendo.common.min.css" rel="stylesheet" />
<link href="http://cdn.kendostatic.com/2014.1.318/styles/kendo.default.min.css" rel="stylesheet" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://cdn.kendostatic.com/2014.1.318/js/kendo.all.min.js"></script>
</head>
<body>
<div class="demo-section">
                    <input name="files" id="files" type="file" />
</div>
<script>
                $(document).ready(function() {
                    $("#files").kendoUpload({
                       select: onSelect
                    });
                });

        function onSelect(e) {
                    if (e.files.length > 4) {
               alert("Please select max 4 files.");
               e.preventDefault();
            }
                else {
               var existingfileCount = $(".demo-section li").length;
               if((e.files.length + existingfileCount) > 4)  
               {
                   alert("You can not upload more than 4 files");
                   e.preventDefault();
                   }

                }
                }
</script>
</body>
</html>

<强>剑道-MVC

  

的Javascript

<script>
             function onSelect(e) {
                    if (e.files.length > 4) {
               alert("Please select max 4 files.");
               e.preventDefault();
            }
                else {
               var existingfileCount = $(".demo-section li").length;
               if((e.files.length + existingfileCount) > 4)  
               {
                   alert("You can not upload more than 4 files");
                   e.preventDefault();
                   }

                }
                }
</script>
  

View.cshtml

<div class="demo-section">
        @(Html.Kendo().Upload()
            .Name("files")
            .Events(events => events.Select("onSelect"))
        )
</div>

注意:我使用'demo-section'类来简化代码。如果要重命名此类,请在html / cshtml和javascript中重命名此类。

如果有任何疑虑,请告诉我。