การสาธิตนี้มีวัตถุประสงค์เพื่อหลีกเลี่ยงปัญหาความเข้ากันได้ของ EJ1 และ EJ2
การตั้งค่าด้านล่างช่วยให้คุณเรนเดอร์ส่วนประกอบ EJ1 และ EJ2 Syncfusion ในแอปพลิเคชัน ASP.NET MVC หน้าเดียว
คุณสามารถสร้างส่วนควบคุม Essential JS 1 และ Essential JS 2 ได้โดยใช้ลิงก์เริ่มต้นด้านล่าง
เพิ่มรูปแบบความเข้ากันได้ เรามีรูปแบบความเข้ากันได้ของ Essential JS 1 และ Essential JS 2 ซึ่งจะไม่ส่งผลกระทบต่อกัน
<head>
@* Syncfusion Essential JS 1 Styles *@
@Styles.Render("https://cdn.syncfusion.com/16.1.0.24/js/web/bootstrap-theme/ej.web.all.compatibility.min.css")
@* Syncfusion Essential JS 2 Styles *@
@Styles.Render("https://cdn.syncfusion.com/ej2/styles/compatibility/material.css")
</head>
เพิ่มสคริปต์สำหรับ Essential JS 1 และ Essential JS 2 ดังต่อไปนี้
@* Syncfusion Essential JS 1 Scripts *@
<script
src="http://cdn.syncfusion.com/js/assets/external/jquery3.3.1.min.js"></script>
<script src="http://cdn.syncfusion.com/js/assets/external/jsrender.min.js"></script>
<script src="http://cdn.syncfusion.com/16.3.0.21/js/web/ej.web.all.min.js"></script>
@* Syncfusion Essential JS 2 Scripts *@
<script src="https://cdn.syncfusion.com/ej2/dist/ej2.min.js"></script>
หมายเหตุ: จำเป็นต้องเพิ่มสคริปต์ ej1 ก่อนสคริปต์ ej2 ไม่เช่นนั้นสคริปต์จะเกิดข้อผิดพลาด
เพื่อให้บรรลุข้อกำหนดนี้ คุณต้องใช้โค้ดด้านล่างในหน้า _Layout.cshtml
เนื่องจาก EJ1 และ EJ2 มีชื่อไลบรารีเดียวกันเพื่อดำเนินการที่แตกต่างกัน ดังนั้นข้อขัดแย้งอาจเกิดขึ้นเมื่อเราอ้างอิงการควบคุมทั้งสองนี้ในแอปพลิเคชันเดียวกัน เพื่อเอาชนะสิ่งนี้ เราจำเป็นต้องขยายไลบรารีนี้ในเนมสเปซ ej
<script>
var dataCopy = Object.assign({}, ej.data);
$.extend(ej, Syncfusion);
$.extend(ej.data, dataCopy);
</script>
กำหนดตัวจัดการสคริปต์สำหรับทั้ง Essential JS 1 และ Essential JS 2
@Html.EJ().ScriptManager()
@Html.EJS().ScriptManager()
สุดท้าย หน้าเค้าโครงจะมีลักษณะดังนี้:
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@* Syncfusion Essential JS 1 Styles *@
@Styles.Render("http://cdn.syncfusion.com/16.3.0.21/js/web/flat-azure/ej.web.all.min.css")
@* Syncfusion Essential JS 2 Styles *@
@Styles.Render("https://cdn.syncfusion.com/ej2/styles/compatibility/material.css")
</head>
<body>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/Scripts/jsrender.min.js")
@* Syncfusion Essential JS 1 Scripts *@
@Scripts.Render("~/Scripts/ej/web/ej.web.all.min.js")
@* Syncfusion Essential JS 2 Scripts *@
@Scripts.Render("~/Scripts/ej2/ej2.min.js")
@RenderSection("scripts", required: false)
<script>
var dataCopy = Object.assign({}, ej.data);
$.extend(ej, Syncfusion);
$.extend(ej.data, dataCopy);
</script>
@Html.EJ().ScriptManager()
@Html.EJS().ScriptManager()
<div class="container body-content">
@RenderBody()
</div>
</body>
</html>
คุณสามารถเริ่มต้นการควบคุม Essential JS 1 และ Essential JS 2 ได้โดยใช้การเริ่มต้น ตัวอย่างด้านล่างนี้เราได้เริ่มต้นการควบคุม UI ของ Eessential JS 1 และ Essential JS 2 ASP.NET MVC UI แล้ว
<h2> Essential JS 1 - Grid Control</h2>
@(Html.EJ().Grid<object>("FlatGrid")
.Datasource((IEnumerable<object>)ViewBag.gridData)
.AllowPaging().PageSettings(page => page.PageSize(4))
.Columns(col =>
{
col.Field("OrderID").HeaderText("Order ID").TextAlign(TextAlign.Right).Width(75).Add();
col.Field("CustomerID").HeaderText("CustomerID").Width(80).Add();
col.Field("ShipName").HeaderText("ShipName").Width(100).Add();
col.Field("ShipCity").HeaderText("ShipCity").Width(100).Add();
col.Field("Freight").Format("{0:c3}").HeaderText("Freight").Width(80).TextAlign(TextAlign.Right).Add();
})
)
<h2> Essential JS 2 - Grid Component </h2>
@Html.EJS().Grid("Grid").DataSource((IEnumerable<object>)ViewBag.gridData).Columns(col =>
{ col.Field("OrderID").HeaderText("OrderID").Width("120").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add();
col.Field("CustomerID").HeaderText("Customer Name").Width("150").Add();
col.Field("OrderDate").HeaderText("OrderDate").Width("130").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Format("yMd").Add();
col.Field("ShipCountry").HeaderText("Ship Country").Width("120").Add();
}).AllowPaging().PageSettings(page => page.PageSize(4).PageSizes(true)).Render()