我的问题是如何在数据库中添加多个包含 char不同[] 的复选框,并且我想在网格中添加图像并想在我的剑道网格上显示图像预览,我还想添加值来自的下拉列表不同的表格,最后一个是单选按钮,所以现在这些东西是我想存储在我的剑道网格中。
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2021.2.616/styles/kendo.common.min.css" />
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2021.2.616/styles/kendo.default.min.css" />
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2021.2.616/js/kendo.all.min.js"></script>
<script src="https://unpkg.com/jszip/dist/jszip.min.js"></script>
<script src="https://unpkg.com/pako/dist/pako_deflate.min.js"></script>
</head>
<body>
<div>
</div>
<div id="grid"></div>
<h2>
Index
</h2>
<script>
$(document).ready(function () {
var dataSource = new kendo.data.DataSource({
transport: {
read: {
url: "/Crud/GetAll",
dataType: "json"
},
create: {
url: "/Crud/Add",
type: "post",
datatype: "json"
},
update: {
url: "/Crud/Update",
type: "post",
datatype: "json"
},
destroy: {
url: function(data){
return "/Crud/Delete/" + data.c_id;
},
@* url:"/Crud/Delete", *@
type: "post",
datatype: "json"
}
},
pageSize: 10,
schema: {
model: {
id: "c_id",
fields: {
c_id: { type: "number", editable: false },
c_name: { type: "string" },
c_gender: { type: "string" },
c_skill: { type: "string" },
c_cityid: { type: "string" },
c_image: { type: "string" },
c_date: { type: "string" }
}
}
}
});
$('#grid').kendoGrid({
dataSource: dataSource,
columns: [
{ selectable: true, width: "50px" },
{ field: "c_id", title: "Id" },
{ field: "c_name", title: "Name" },
{ field: "c_gender", title: "Gender", editor: genderEditor },
{ field: "c_skill", title: "skill", editor: skillEditor },
{ field: "c_cityid", title: "city", editor: cityEditor },
{ field: "c_image", title: "Image", template: "<img src='#: c_image #' alt='Image' style='max-width:100px; max-height:100px;' />", editor: imgEditor },
{
field: "c_date",
title: "Date of Birth",
format: "{0:yyyy/MM/dd}",
editor: function (container, options) {
var dob = options.model.c_date ? kendo.toString(new Date(options.model.c_date), 'yyyy/MM/dd') : new Date();
$('<input name="c_date" data-format="yyyy/MM/dd" required="required" />').appendTo(container).kendoDatePicker({
value: dob,
change: function (e) {
var parsedDate = kendo.toString(new Date(this.value()), 'yyyy/MM/dd');
options.model.set("c_date", parsedDate);
},
});
},
},
{ command: ["edit", { name: "destroy", text: "Delete" }], title: "Action" }
],
editable: "popup",
pageable: true,
sortable: true,
filterable: true,
toolbar: ["create", { template: '<button id="deleteSelected" class="k-button">Delete Selected</button>' }, { template: ' <input type="text" id="gridSearch" placeholder="Search..." class="k-textbox" style="width: 200px;" />' }, { template: ' <button id="exportToExcel" class="k-button">Export to Excel</button>' }, { template: ' <button id="exportToPDF" class="k-button">Export to PDF</button>' }],
excel: {
fileName: "GridData.xlsx",
proxyURL: "https://demos.telerik.com/kendo-ui/service/export"
},
@* edit: function(e) {
// Redirect to another page when the edit event is triggered
window.location.href = '/Mvc/Edit';
} *@
});
$("#deleteSelected").on("click", function () {
var grid = $("#grid").data("kendoGrid");
var selectedRows = grid.select();
if (selectedRows.length) {
if (confirm("Are you sure you want to delete the selected item?")) {
selectedRows.each(function (index, row) {
grid.removeRow(row);
});
grid.dataSource.sync();
}
} else {
alert("Please select at least one item to delete.");
}
});
$("#exportToExcel").on("click", function () {
var grid = $("#grid").data("kendoGrid");
grid.saveAsExcel();
});
$("#exportToPDF").on("click", function () {
var grid = $("#grid").data("kendoGrid");
grid.saveAsPDF();
});
$("#gridSearch").on("keyup", function () {
var grid = $("#grid").data("kendoGrid");
var searchValue = $(this).val();
grid.dataSource.filter({
logic: "or",
filters: [
{ field: "c_id", operator: "contains", value: searchValue },
{ field: "c_name", operator: "contains", value: searchValue },
{ field: "c_gender", operator: "contains", value: searchValue },
{ field: "c_skill", operator: "contains", value: searchValue },
{ field: "c_cityid", operator: "contains", value: searchValue },
{ field: "c_date", operator: "contains", value: searchValue }
]
});
});
function genderEditor(container, options) {
$('<input type="radio" name="c_gender" value="Male" />Male<br/>')
.add($('<input type="radio" name="c_gender" value="Female" />Female<br/>'))
.appendTo(container);
}
function skillEditor(container, options) {
var checkboxWrapper = $('<div>').appendTo(container);
checkboxWrapper.kendoCheckBoxGroup({
items: [
{ label: "Design", value: "Design" },
{ label: "Develop", value: "Develop" },
{ label: "Testing", value: "Testing" }
],
layout: "horizontal"
});
var checkboxGroup = checkboxWrapper.data("kendoCheckBoxGroup");
checkboxGroup.value(options.model.c_skill.split(','));
checkboxGroup.bind("change", function (e) {
var selectedHobbies = e.sender.value().join(',');
options.model.set("c_skill", selectedHobbies);
});
}
function imgEditor(container, options) {
$('<input type="file" name="c_image" accept="image/*" />').appendTo(container)
.change(function () {
var file = this.files[0];
if (file) {
var reader = new FileReader();
reader.onload = function (e) {
options.model.c_image = e.target.result;
var grid = $("#grid").data("kendoGrid");
var dataItem = grid.dataItem($(container).closest("tr"));
if (dataItem) {
dataItem.set("c_image", e.target.result);
} else {
console.error("Data item not found.");
}
};
reader.readAsDataURL(file);
}
});
}
function dateEditor(container, options) {
var dateValue = options.model[options.field];
var parsedDate = kendo.parseDate(dateValue);
var formattedDate = parsedDate ? kendo.toString(parsedDate, 'yyyy-MM-dd') : '';
$('<input required name="' + options.field + '" value="' + formattedDate + '">')
.appendTo(container)
.kendoDatePicker();
}
function cityEditor(container, options) {
$('<input required name="' + options.field + '">')
.appendTo(container)
.kendoDropDownList({
dataTextField: "c_cname",
dataValueField: "c_cid",
dataSource: {
transport: {
read: {
url: "/Crud/GetCities",
dataType: "json"
}
}
},
optionLabel: "--Select City--"
});
}
});
</script>
</body>
</html>