Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用剑道v2016添加文件过滤器_Javascript_Html_Razor_Kendo Ui_Kendo Asp.net Mvc - Fatal编程技术网

Javascript 如何使用剑道v2016添加文件过滤器

Javascript 如何使用剑道v2016添加文件过滤器,javascript,html,razor,kendo-ui,kendo-asp.net-mvc,Javascript,Html,Razor,Kendo Ui,Kendo Asp.net Mvc,我正在尝试查看如何在Kendo.Mvc.UI.FileUpload中添加文件过滤器。我在网上找到了一些例子,但它们都使用了一种叫做“选择”的方法,而我目前使用的剑道版本似乎没有这种方法。我正在尝试隔离允许选择.pdf和.csv文件的文件类型 我目前正在做的是,在razor语法中使用剑道,而不是在javascript中使用剑道,因此正在进行基本的文件上传,如下面的示例所示: @(Html.Kendo().Upload() .Name("chkfiles

我正在尝试查看如何在Kendo.Mvc.UI.FileUpload中添加文件过滤器。我在网上找到了一些例子,但它们都使用了一种叫做“选择”的方法,而我目前使用的剑道版本似乎没有这种方法。我正在尝试隔离允许选择.pdf和.csv文件的文件类型

我目前正在做的是,在razor语法中使用剑道,而不是在javascript中使用剑道,因此正在进行基本的文件上传,如下面的示例所示:

 @(Html.Kendo().Upload()
                      .Name("chkfiles")
                      .Async(a => a
                  .Save("SaveCF", "AccountEvent", new { id = Model.SeqNum })
                  .Remove("RemoveCF", "AccountEvent", new { id = Model.SeqNum })
                          .AutoUpload(true)

                      ).Files(f =>
                      {
                          if (Model != null && !string.IsNullOrEmpty(Model.CheckListFile))
                          {
                              f.Add().Name(Path.GetFileName(Model.CheckListFile));
                          }
                      })
                      .Multiple(false)
                          .Events(e =>
                          {
                              e.Error("accountEventEditController.uploadCheckFileError");
                              e.Upload("accountEventEditController.onCheckFileUpload");
                              e.Success("accountEventEditController.onCheckFileSuccess");
                              e.Remove("accountEventEditController.onCheckFileRemove");
                              e.Complete("accountEventEditController.onCheckFileComplete");
                          })
                    )
我如何扩展它,或者在上传之前检查过滤文件。我了解到,如果选择的文件类型不正确,您无法筛选打开的文件对话框,但可以调用e.preventdefault()。但是我如何输入这个,或者如何编辑由kendo fileupload小部件创建的文件输入html。然后我可以添加如下属性参数:

accept=".xls,.xlsx" 

感谢您的帮助,并提前表示感谢

我发现我可以订阅select事件,如果文件类型不正确,则返回preventdefault()

 @(Html.Kendo().Upload()
                  .Name("chkfiles")
                  .Async(a => a
              .Save("SaveCF", "AccountEvent", new { id = Model.SeqNum })
              .Remove("RemoveCF", "AccountEvent", new { id = Model.SeqNum })
                      .AutoUpload(true)

                  ).Files(f =>
                  {
                      if (Model != null && !string.IsNullOrEmpty(Model.CheckListFile))
                      {
                          f.Add().Name(Path.GetFileName(Model.CheckListFile));
                      }
                  })
                  .Multiple(false)
                      .Events(e =>
                      {
                          e.Error("accountEventEditController.uploadCheckFileError");
                          e.Upload("accountEventEditController.onCheckFileUpload");
                          e.Success("accountEventEditController.onCheckFileSuccess");
                          e.Remove("accountEventEditController.onCheckFileRemove");
                          e.Complete("accountEventEditController.onCheckFileComplete");

                          e.Select("accounteventcontroller.onSelectFile");
                      })
                )
或者回答我的HtmlAttributes部分:

@(Html.Kendo().Upload()
                      .Name("chkfiles")                          
                      .Async(a => a
                  .Save("SaveCF", "AccountEvent", new { id = Model.SeqNum })
                  .Remove("RemoveCF", "AccountEvent", new { id = Model.SeqNum })
                  .HtmlAttributes(new { accept = ".pdf, .csv" })
                   .AutoUpload(true))
                   .Files(f =>
                      {
                          if (Model != null && !string.IsNullOrEmpty(Model.CheckListFile))
                          {
                              f.Add().Name(Path.GetFileName(Model.CheckListFile));
                          }
                      })
                  .Multiple(false)
                  .Events(e =>
                    {
                              e.Error("accountEventEditController.uploadCheckFileError");
                              e.Upload("accountEventEditController.onCheckFileUpload");
                              e.Success("accountEventEditController.onCheckFileSuccess");
                              e.Remove("accountEventEditController.onCheckFileRemove");
                              e.Complete("accountEventEditController.onCheckFileComplete");
                          })

                    )

老兄,我已经找了一段时间了,但在发帖后我想我找到了答案。我不知道有一个验证参数,所以现在尝试一下。似乎不起作用。为什么我不能在razor中使用验证,而不是在javascript格式中调用kendo?