Javascript 如何使用剑道v2016添加文件过滤器
我正在尝试查看如何在Kendo.Mvc.UI.FileUpload中添加文件过滤器。我在网上找到了一些例子,但它们都使用了一种叫做“选择”的方法,而我目前使用的剑道版本似乎没有这种方法。我正在尝试隔离允许选择.pdf和.csv文件的文件类型 我目前正在做的是,在razor语法中使用剑道,而不是在javascript中使用剑道,因此正在进行基本的文件上传,如下面的示例所示: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
@(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?