Checking Required Inputs in Cells Error

hi, syncfusion team


The following code was created so that the row can be updated only when the required input values are met in the cell.

//html

<ejs-grid id="DataInputGrid" created="GridCreated" allowSelection="true" gridLines="Both" rowHeight="30" frozenColumns="7" height="540px"

              allowResizing="true" allowTextWrap="true" cellSave="cellSave" dataBound="dataBound" cellEdit="cellEdit" rowSelecting="rowSelecting" beforeBatchAdd="beforeBatchAdd"

              toolbar="@(new List<string>() {"Add","Delete","Update","Cancel" })">

        @*<e-grid-aggregates>

                <e-grid-aggregate>

                    <e-aggregate-columns>

                        <e-aggregate-column field="RM_AREA" type="Custom" footerTemplate="AIR SYSTEM :${Custom}" customAggregate="@("customAggregateFn")"></e-aggregate-column>

                    </e-aggregate-columns>

                </e-grid-aggregate>

            </e-grid-aggregates>

            <e-grid-aggregates>

                <e-grid-aggregate>

                    <e-aggregate-columns>

                        <e-aggregate-column field="RM_AREA" type="Sum" footerTemplate="ALL :${Sum}"></e-aggregate-column>

                    </e-aggregate-columns>

                </e-grid-aggregate>

            </e-grid-aggregates>*@

        <e-grid-groupsettings></e-grid-groupsettings>

        <e-grid-textwrapsettings wrapMode="Header"></e-grid-textwrapsettings>

        <e-grid-selectionsettings checkboxOnly="true" type="Single"></e-grid-selectionsettings>

        <e-grid-editSettings allowAdding="true" allowEditing="true" allowDeleting="true" mode="Batch" newRowPosition="Bottom"></e-grid-editSettings>

        <e-grid-columns>

            <e-grid-column type="checkBox" width="40" headerTextAlign="Center" textAlign="Center"></e-grid-column>

            <e-grid-column field="BLDG_SNO" visible="false" isPrimaryKey="true" defaultValue="@empty"></e-grid-column>


            @*Frozen Column*@

            <e-grid-column headerText="ARCHITECTURAL INFORMATION" headerTextAlign="Center" textAlign="Center"

                           columns="@(new List<Syncfusion.EJ2.Grids.GridColumn>() {

                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="ROOM INFORMATION", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_SNO" , Width ="150", HeaderText ="KEY" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Left},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="ROOM_NO" , Width ="90" , HeaderText ="ROOM NO." , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center , ValidationRules = new { required = true, number=true}},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="ID_COND_ZONE", Width ="90" , HeaderText ="ZONE" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right , ValidationRules = new { required = true, number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_SYS_NM" , Width ="90" , HeaderText ="AIR SYSTEM NAME", DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Left , ValidationRules = new { required = true, number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_NM" , Width ="140", HeaderText ="ROOM NAME" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Left , ValidationRules = new { required=true}}}

                }})">

            </e-grid-column>


            @*ARCHITECHTURAL INFORMATION*@

            <e-grid-column headerText="ARCHITECTURAL INFORMATION" headerTextAlign="Center" textAlign="Center"

                           columns="@(new List<Syncfusion.EJ2.Grids.GridColumn>() {


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="ROOM INFORMATION" , TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_AREA" , Width ="80" , Visible = false, HeaderText ="ROOM AREA (m2)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_WIDTH" , Width ="80" , Visible = false, Format ="N1", HeaderText ="WIDTH (m)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_LGTH" , Width ="80" , Visible = false, Format ="N1", HeaderText ="LENGTH (m)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_CLG_HGT" , Width ="90" , Visible = false, Format ="N1", HeaderText ="CEILING HEIGHT (m)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_FULL_HGT" , Width ="90" , Visible = false, Format ="N1", HeaderText ="FULL HEIGHT (m)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_VOL" , Width ="100", Visible = false, Format ="N1", HeaderText ="ROOM VOLUME (m3)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_NO_OF_OCC", Width ="100", Visible = false, Format ="N0", HeaderText ="NUMBER OF OCCUPANCY", DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }}} },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="OUTER WALL LENGTH", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWL_N", Width ="90", HeaderText ="N", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWL_E", Width ="90", HeaderText ="E", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWL_S", Width ="90", HeaderText ="S", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWL_W", Width ="90", HeaderText ="W", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }} } },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="OUTER WALL AREA" , TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWA_N", Width ="90", HeaderText ="N", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWA_E", Width ="90", HeaderText ="E", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWA_S", Width ="90", HeaderText ="S", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWA_W", Width ="90", HeaderText ="W", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}} },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="DOOR Q'ty" , TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="DOOR_QTY_N", Width ="90", HeaderText ="N", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="DOOR_QTY_E", Width ="90", HeaderText ="E", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="DOOR_QTY_S", Width ="90", HeaderText ="S", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="DOOR_QTY_W", Width ="90", HeaderText ="W", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }}} },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="WINDOW Q'ty" , TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="WIN_QTY_N", Width ="90", HeaderText ="N", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="WIN_QTY_E", Width ="90", HeaderText ="E", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="WIN_QTY_S", Width ="90", HeaderText ="S", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="WIN_QTY_W", Width ="90", HeaderText ="W", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }}} } }


            )"></e-grid-column>


            @*HEAT DISSIPATION*@

            <e-grid-column headerText="HEAT DISSIPATION" headerTextAlign="Center" textAlign="Center"

                           columns="@(new List<Syncfusion.EJ2.Grids.GridColumn>() {

                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="ELECTRIC", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_ELTR_WT" , Width ="92", Visible = false, Format ="N1", HeaderText ="HEAT DISSIPATION (Watt)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_ELTR_WT_AREA" , Width ="90", Visible = false, Format ="N1", HeaderText ="HEAT DISSPATION / AREA (Watt/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}

                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="INSTRUMENT", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_ISTRM_WT" , Width ="92", Visible = false, Format ="N1", HeaderText ="HEAT DISSIPATION (Watt)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_ISTRM_WT_AREA" , Width ="90", Visible = false, Format ="N1", HeaderText ="HEAT DISSPATION / AREA (Watt/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}

                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="TELECOM", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_TC_WT" , Width ="92", Visible = false, Format ="N1", HeaderText ="HEAT DISSIPATION (Watt)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_TC_WT_AREA" , Width ="90", Visible = false, Format ="N1", HeaderText ="HEAT DISSPATION / AREA (Watt/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}

                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="PROCESS", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_PROC_WT" , Width ="92", Visible = false, Format ="N1", HeaderText ="HEAT DISSIPATION (Watt)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_PROC_WT_AREA" , Width ="90", Visible = false, Format ="N1", HeaderText ="HEAT DISSPATION / AREA (Watt/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}

                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="MECHANICAL", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_MCC_WT" , Width ="92", Visible = false, Format ="N1", HeaderText ="HEAT DISSIPATION (Watt)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_MCC_WT_AREA" , Width ="90", Visible = false, Format ="N1", HeaderText ="HEAT DISSPATION / AREA (Watt/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}

                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="ETC", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_ETC_WT" , Width ="92", Visible = false, Format ="N1", HeaderText ="HEAT DISSIPATION (Watt)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_ETC_WT_AREA" , Width ="90", Visible = false, Format ="N1", HeaderText ="HEAT DISSPATION / AREA (Watt/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}

                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="TOTAL", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_TOTAL_WT" , Width ="92", Visible = false, Format ="N1", HeaderText ="TOTAL HEAT DISSIPATION (Watt)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_TOTAL_WT_AREA" , Width ="90", Visible = false, Format ="N1", HeaderText ="TOTAL HEAT DISSPATION / AREA (Watt/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}

                }})">

            </e-grid-column>


            @*FRESH AIR SELECTION*@

            <e-grid-column headerText="FRESH AIR SELECTION" headerTextAlign="Center" textAlign="Center"

                           columns="@(new List<Syncfusion.EJ2.Grids.GridColumn>() {

                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="OCCUPANCY BASE", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_OB_OCC_UTFL", Width ="90", Visible = false, Format ="N1", HeaderText ="UNIT FLOW (L/S/PERSON)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_OB_OCC_FLRT", Width ="90", Visible = false, Format ="N1", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}

                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="AREA BASE", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_AB_UTFL", Width ="90", Visible = false, Format ="N1", HeaderText ="UNIT FLOW (L/S/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_AB_FLRT", Width ="90", Visible = false, Format ="N1", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}

                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="FIXTURE UNIT BASE", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_FUB_TILT_UNFW", Width ="90", Visible = false, Format ="N1", HeaderText ="UNIT FLOW (L/S/TOILET)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_FUB_TILT_FLRT", Width ="90", Visible = false, Format ="N1", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_FUB_SHW_UNFW" , Width ="90", Visible = false, Format ="N1", HeaderText ="UNIT FLOW (L/S/SHOWER)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_FUB_SHW_FLRT" , Width ="90", Visible = false, Format ="N1", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}

                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="ΔP BASE", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_DPB_DP" , Width ="90", Visible = false, Format ="N1", HeaderText ="ΔP" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_DPB_TIGHT", Width ="90", Visible = false, Format ="N1", HeaderText ="TIGHTNESS" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, Edit = new { create ="TIGHT_Create", read ="TIGHT_Read", destory ="TIGHT_Destory", write ="TIGHT_Write" }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_DPB_FLRT" , Width ="90", Visible = false, Format ="N1", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}

                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="ACH BASE", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_ACH" , Width ="90", Visible = false, Format ="N1", HeaderText ="ACH" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_ACH_FLRT", Width ="90", Visible = false, Format ="N1", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}

                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="100% F.A", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_FA_FLRT", Width ="110", Visible = false, Format ="N1", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }}}

                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="SELECT F.A AS E.A", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_FA_SELEC_FLRT", Width ="170", Visible = false, Format ="N0", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}

                }})">

            </e-grid-column>


            <e-grid-column headerText=""

                           columns="@(new List<Syncfusion.EJ2.Grids.GridColumn>() {

            new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="AIR BALANCE SUMMARY", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_FRESH" , Width ="90", Visible = false, Format ="N0", HeaderText ="FRESH AIR (L/S)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_SUPPLY" , Width ="90", Visible = false, Format ="N0", HeaderText ="SUPPLY AIR (L/S)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_RETURN" , Width ="90", Visible = false, Format ="N0", HeaderText ="RETURN AIR (L/S)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_OV_PRS" , Width ="90", Visible = false, Format ="N0", HeaderText ="OVER-PRESSURE (L/S)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_EXHAUST" , Width ="90", Visible = false, Format ="N0", HeaderText ="EXHAUST AIR (L/S)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_EXHAUST_CHK" , Width ="90", Visible = false, HeaderText ="SELECT F.A AS E.A" , DefaultValue ="N", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Edit = new { create ="SEL_FA_Create", read ="SEL_FA_Read", destory ="SEL_FA_Destory", write ="SEL_FA_Write" }}

            }},

            new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="SPACE HEAT LOAD" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                new Syncfusion.EJ2.Grids.GridColumn { Field ="SHL_CSLW", Width ="90", Visible = false, Format ="N0", HeaderText ="COOLING SENSIBLE LOAD(Watt)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="SHL_CLLW", Width ="90", Visible = false, Format ="N0", HeaderText ="COOLING LATENT LOAD(Watt)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="SHL_HSLW", Width ="90", Visible = false, Format ="N0", HeaderText ="HEATING SENSIBLE LOAD(Watt)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="SHL_HLLW", Width ="90", Visible = false, Format ="N0", HeaderText ="HEATING LATENT LOAD(Watt)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }}

            }},

            new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="PLUMBING FIXTURE" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_VALV_WC" , Width ="90", Visible = false, Format ="N0", HeaderText ="WATER CLOSET (FLUSH VALVE)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_TANK_WC" , Width ="90", Visible = false, Format ="N0", HeaderText ="WATER CLOSET (FLUSH TANK)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_FHPS" , Width ="90", Visible = false, Format ="N0", HeaderText ="FAUCET/ HOSS BIBB/ PERENNIAL SPRAY" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_URINAL" , Width ="90", Visible = false, Format ="N0", HeaderText ="URINAL" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_LAVATORY" , Width ="90", Visible = false, Format ="N0", HeaderText ="LAVATORY" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_SERVICE_SK" , Width ="90", Visible = false, Format ="N0", HeaderText ="SERVICE SINK" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_ABLUTION_TAP" , Width ="90", Visible = false, Format ="N0", HeaderText ="ABLUTION TAP" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_KITCHEN_SK" , Width ="90", Visible = false, Format ="N0", HeaderText ="KITCHEN SINK" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_DK_FOUNTAIN" , Width ="90", Visible = false, Format ="N0", HeaderText ="DRINKING FOUNTAIN" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_HUMIDIFIER" , Width ="90", Visible = false, Format ="N0", HeaderText ="HUMIDIFIER" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_E_WASHER" , Width ="90", Visible = false, Format ="N0", HeaderText ="EYE WASHER" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_E_WS" , Width ="90", Visible = false, Format ="N0", HeaderText ="EYE WASH & SHOWER" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_SHOWER" , Width ="90", Visible = false, Format ="N0", HeaderText ="SHOWER" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }}

            }},

            new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="INDOOR CONDITION", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){

                new Syncfusion.EJ2.Grids.GridColumn { Field ="ID_COND_SUMM_DB", Width ="100", Visible = false, Format ="N1", HeaderText ="SUMMER DB (°C)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="ID_COND_WNTR_DB", Width ="100", Visible = false, Format ="N1", HeaderText ="WINTER DB (°C)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="ID_COND_RH" , Width ="100", Visible = false, Format ="N0", HeaderText ="RH (%)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},

                new Syncfusion.EJ2.Grids.GridColumn { Field ="ID_COND_AH" , Width ="100", Visible = false, Format ="N5", HeaderText ="AH (kg/kg)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }}

            }} })">


            </e-grid-column>


            <e-grid-column field="PC_WALL_AREA" visible="false" defaultValue="@empty"></e-grid-column>

            <e-grid-column field="PC_AES" visible="false" defaultValue="@empty"></e-grid-column>

            <e-grid-column field="PC_AL" visible="false" defaultValue="@empty"></e-grid-column>

            <e-grid-column field="PC_QR" visible="false" defaultValue="@empty"></e-grid-column>

            <e-grid-column field="PC_V" visible="false" defaultValue="@empty"></e-grid-column>

            <e-grid-column field="PC_SF" visible="false" defaultValue="@empty"></e-grid-column>


            <e-grid-column field="RA_WINDB" visible="false" defaultValue="@empty"></e-grid-column>

            <e-grid-column field="RA_WINDB_MAX" visible="false" defaultValue="@empty"></e-grid-column>

            <e-grid-column field="RA_AH" visible="false" defaultValue="@empty"></e-grid-column>

            <e-grid-column field="RA_AH_MAX" visible="false" defaultValue="@empty"></e-grid-column>


        </e-grid-columns>

    </ejs-grid>


Like the above source, it was created with ValidationRules=new{required=true}.

So, as shown in the image below, an error occurs when updating without adding the cell value.



However, once the cell is released through the "esc" button, it can be updated when it is updated.


I think it's a big problematic error.

I would appreciate it if you could reply after checking through reproduction.


Thank you for your kind response.


8 Replies

TK TaeWook Kang March 21, 2022 09:40 AM UTC

The image is not inserted, so I will add it as a comment.valid error.png



TK TaeWook Kang March 21, 2022 09:43 AM UTC

It will be updated even if there is no required input value.

reference image




RR Rajapandi Ravi Syncfusion Team March 21, 2022 01:49 PM UTC

Hi Taewook, 

Greetings from Syncfusion support 

Based on your query we have prepared a sample and tried to reproduce your reported problem at our end, but it was unsuccessful. The validation was working fine in the Grid cell. For your convenience we have attached the sample, please refer the below sample for more information. 


Screenshot: 

 

If you still face the issue, please replicate the issue with our above attached sample or share any issue reproducible sample that would be helpful for us to validate the application. 


Regards, 
Rajapandi R 



TK TaeWook Kang replied to Rajapandi Ravi March 22, 2022 03:08 AM UTC

 I think the explanation was lacking. So, Let me explain it again in detail.

Please check the code and contents below once again.


<ejs-grid id="DataInputGrid" created="GridCreated" allowSelection="true" gridLines="Both" rowHeight="30" frozenColumns="7" height="540px"
              allowResizing="true" allowTextWrap="true" cellSave="cellSave" dataBound="dataBound" cellEdit="cellEdit" rowSelecting="rowSelecting" beforeBatchAdd="beforeBatchAdd"
              toolbar="@(new List<string>() {"Add","Delete","Update","Cancel" })">
        @*<e-grid-aggregates>
                <e-grid-aggregate>
                    <e-aggregate-columns>
                        <e-aggregate-column field="RM_AREA" type="Custom" footerTemplate="AIR SYSTEM :${Custom}" customAggregate="@("customAggregateFn")"></e-aggregate-column>
                    </e-aggregate-columns>
                </e-grid-aggregate>
            </e-grid-aggregates>
            <e-grid-aggregates>
                <e-grid-aggregate>
                    <e-aggregate-columns>
                        <e-aggregate-column field="RM_AREA" type="Sum" footerTemplate="ALL :${Sum}"></e-aggregate-column>
                    </e-aggregate-columns>
                </e-grid-aggregate>
            </e-grid-aggregates>*@
        <e-grid-groupsettings></e-grid-groupsettings>
        <e-grid-textwrapsettings wrapMode="Header"></e-grid-textwrapsettings>
        <e-grid-selectionsettings checkboxOnly="true" type="Single"></e-grid-selectionsettings>
        <e-grid-editSettings allowAdding="true" allowEditing="true" allowDeleting="true" mode="Batch" newRowPosition="Bottom"></e-grid-editSettings>
        <e-grid-columns>
            <e-grid-column type="checkBox" width="40" headerTextAlign="Center" textAlign="Center"></e-grid-column>
            <e-grid-column field="BLDG_SNO" visible="false" isPrimaryKey="true" defaultValue="@empty"></e-grid-column>


            @*Frozen Column*@
            <e-grid-column headerText="ARCHITECTURAL INFORMATION" headerTextAlign="Center" textAlign="Center"
                           columns="@(new List<Syncfusion.EJ2.Grids.GridColumn>() {
                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="ROOM INFORMATION", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_SNO" , Width ="150", HeaderText ="KEY" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Left},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="ROOM_NO" , Width ="90" , HeaderText ="ROOM NO." , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center , ValidationRules = new { required = true, number=true}},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="ID_COND_ZONE", Width ="90" , HeaderText ="ZONE" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right , ValidationRules = new { required = true, number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_SYS_NM" , Width ="90" , HeaderText ="AIR SYSTEM NAME", DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Left , ValidationRules = new { required = true, number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_NM" , Width ="140", HeaderText ="ROOM NAME" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Left , ValidationRules = new { required=true}}}
                }})">
            </e-grid-column>


            @*ARCHITECHTURAL INFORMATION*@
            <e-grid-column headerText="ARCHITECTURAL INFORMATION" headerTextAlign="Center" textAlign="Center"
                           columns="@(new List<Syncfusion.EJ2.Grids.GridColumn>() {


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="ROOM INFORMATION" , TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_AREA" , Width ="80" , Visible = false, HeaderText ="ROOM AREA (m2)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_WIDTH" , Width ="80" , Visible = false, Format ="N1", HeaderText ="WIDTH (m)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_LGTH" , Width ="80" , Visible = false, Format ="N1", HeaderText ="LENGTH (m)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_CLG_HGT" , Width ="90" , Visible = false, Format ="N1", HeaderText ="CEILING HEIGHT (m)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_FULL_HGT" , Width ="90" , Visible = false, Format ="N1", HeaderText ="FULL HEIGHT (m)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_VOL" , Width ="100", Visible = false, Format ="N1", HeaderText ="ROOM VOLUME (m3)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_NO_OF_OCC", Width ="100", Visible = false, Format ="N0", HeaderText ="NUMBER OF OCCUPANCY", DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }}} },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="OUTER WALL LENGTH", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWL_N", Width ="90", HeaderText ="N", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWL_E", Width ="90", HeaderText ="E", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWL_S", Width ="90", HeaderText ="S", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWL_W", Width ="90", HeaderText ="W", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }} } },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="OUTER WALL AREA" , TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWA_N", Width ="90", HeaderText ="N", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWA_E", Width ="90", HeaderText ="E", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWA_S", Width ="90", HeaderText ="S", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="OWA_W", Width ="90", HeaderText ="W", Visible = false, Format ="N1", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}} },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="DOOR Q'ty" , TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="DOOR_QTY_N", Width ="90", HeaderText ="N", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="DOOR_QTY_E", Width ="90", HeaderText ="E", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="DOOR_QTY_S", Width ="90", HeaderText ="S", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="DOOR_QTY_W", Width ="90", HeaderText ="W", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }}} },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="WINDOW Q'ty" , TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="WIN_QTY_N", Width ="90", HeaderText ="N", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="WIN_QTY_E", Width ="90", HeaderText ="E", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="WIN_QTY_S", Width ="90", HeaderText ="S", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="WIN_QTY_W", Width ="90", HeaderText ="W", Visible = false, Format ="N0", DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }}} } }


            )"></e-grid-column>


            @*HEAT DISSIPATION*@
            <e-grid-column headerText="HEAT DISSIPATION" headerTextAlign="Center" textAlign="Center"
                           columns="@(new List<Syncfusion.EJ2.Grids.GridColumn>() {
                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="ELECTRIC", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_ELTR_WT" , Width ="92", Visible = false, Format ="N1", HeaderText ="HEAT DISSIPATION (Watt)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_ELTR_WT_AREA" , Width ="90", Visible = false, Format ="N1", HeaderText ="HEAT DISSPATION / AREA (Watt/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}
                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="INSTRUMENT", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_ISTRM_WT" , Width ="92", Visible = false, Format ="N1", HeaderText ="HEAT DISSIPATION (Watt)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_ISTRM_WT_AREA" , Width ="90", Visible = false, Format ="N1", HeaderText ="HEAT DISSPATION / AREA (Watt/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}
                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="TELECOM", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_TC_WT" , Width ="92", Visible = false, Format ="N1", HeaderText ="HEAT DISSIPATION (Watt)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_TC_WT_AREA" , Width ="90", Visible = false, Format ="N1", HeaderText ="HEAT DISSPATION / AREA (Watt/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}
                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="PROCESS", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_PROC_WT" , Width ="92", Visible = false, Format ="N1", HeaderText ="HEAT DISSIPATION (Watt)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_PROC_WT_AREA" , Width ="90", Visible = false, Format ="N1", HeaderText ="HEAT DISSPATION / AREA (Watt/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}
                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="MECHANICAL", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_MCC_WT" , Width ="92", Visible = false, Format ="N1", HeaderText ="HEAT DISSIPATION (Watt)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_MCC_WT_AREA" , Width ="90", Visible = false, Format ="N1", HeaderText ="HEAT DISSPATION / AREA (Watt/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}
                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="ETC", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_ETC_WT" , Width ="92", Visible = false, Format ="N1", HeaderText ="HEAT DISSIPATION (Watt)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_ETC_WT_AREA" , Width ="90", Visible = false, Format ="N1", HeaderText ="HEAT DISSPATION / AREA (Watt/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}
                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="TOTAL", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_TOTAL_WT" , Width ="92", Visible = false, Format ="N1", HeaderText ="TOTAL HEAT DISSIPATION (Watt)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="HD_TOTAL_WT_AREA" , Width ="90", Visible = false, Format ="N1", HeaderText ="TOTAL HEAT DISSPATION / AREA (Watt/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}
                }})">
            </e-grid-column>


            @*FRESH AIR SELECTION*@
            <e-grid-column headerText="FRESH AIR SELECTION" headerTextAlign="Center" textAlign="Center"
                           columns="@(new List<Syncfusion.EJ2.Grids.GridColumn>() {
                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="OCCUPANCY BASE", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_OB_OCC_UTFL", Width ="90", Visible = false, Format ="N1", HeaderText ="UNIT FLOW (L/S/PERSON)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_OB_OCC_FLRT", Width ="90", Visible = false, Format ="N1", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}
                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="AREA BASE", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_AB_UTFL", Width ="90", Visible = false, Format ="N1", HeaderText ="UNIT FLOW (L/S/m2)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_AB_FLRT", Width ="90", Visible = false, Format ="N1", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}
                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="FIXTURE UNIT BASE", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_FUB_TILT_UNFW", Width ="90", Visible = false, Format ="N1", HeaderText ="UNIT FLOW (L/S/TOILET)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_FUB_TILT_FLRT", Width ="90", Visible = false, Format ="N1", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_FUB_SHW_UNFW" , Width ="90", Visible = false, Format ="N1", HeaderText ="UNIT FLOW (L/S/SHOWER)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_FUB_SHW_FLRT" , Width ="90", Visible = false, Format ="N1", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}
                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="ΔP BASE", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_DPB_DP" , Width ="90", Visible = false, Format ="N1", HeaderText ="ΔP" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_DPB_TIGHT", Width ="90", Visible = false, Format ="N1", HeaderText ="TIGHTNESS" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, Edit = new { create ="TIGHT_Create", read ="TIGHT_Read", destory ="TIGHT_Destory", write ="TIGHT_Write" }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_DPB_FLRT" , Width ="90", Visible = false, Format ="N1", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}
                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="ACH BASE", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_ACH" , Width ="90", Visible = false, Format ="N1", HeaderText ="ACH" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_ACH_FLRT", Width ="90", Visible = false, Format ="N1", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}
                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="100% F.A", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_FA_FLRT", Width ="110", Visible = false, Format ="N1", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }}}
                },


                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="SELECT F.A AS E.A", TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="FAS_FA_SELEC_FLRT", Width ="170", Visible = false, Format ="N0", HeaderText ="FLOW RATE (L/S)" , DefaultValue ="", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right}}
                }})">
            </e-grid-column>


            <e-grid-column headerText=""
                           columns="@(new List<Syncfusion.EJ2.Grids.GridColumn>() {
            new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="AIR BALANCE SUMMARY", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_FRESH" , Width ="90", Visible = false, Format ="N0", HeaderText ="FRESH AIR (L/S)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_SUPPLY" , Width ="90", Visible = false, Format ="N0", HeaderText ="SUPPLY AIR (L/S)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_RETURN" , Width ="90", Visible = false, Format ="N0", HeaderText ="RETURN AIR (L/S)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_OV_PRS" , Width ="90", Visible = false, Format ="N0", HeaderText ="OVER-PRESSURE (L/S)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_EXHAUST" , Width ="90", Visible = false, Format ="N0", HeaderText ="EXHAUST AIR (L/S)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_EXHAUST_CHK" , Width ="90", Visible = false, HeaderText ="SELECT F.A AS E.A" , DefaultValue ="N", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Edit = new { create ="SEL_FA_Create", read ="SEL_FA_Read", destory ="SEL_FA_Destory", write ="SEL_FA_Write" }}
            }},
            new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="SPACE HEAT LOAD" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                new Syncfusion.EJ2.Grids.GridColumn { Field ="SHL_CSLW", Width ="90", Visible = false, Format ="N0", HeaderText ="COOLING SENSIBLE LOAD(Watt)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="SHL_CLLW", Width ="90", Visible = false, Format ="N0", HeaderText ="COOLING LATENT LOAD(Watt)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="SHL_HSLW", Width ="90", Visible = false, Format ="N0", HeaderText ="HEATING SENSIBLE LOAD(Watt)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="SHL_HLLW", Width ="90", Visible = false, Format ="N0", HeaderText ="HEATING LATENT LOAD(Watt)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }}
            }},
            new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="PLUMBING FIXTURE" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_VALV_WC" , Width ="90", Visible = false, Format ="N0", HeaderText ="WATER CLOSET (FLUSH VALVE)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_TANK_WC" , Width ="90", Visible = false, Format ="N0", HeaderText ="WATER CLOSET (FLUSH TANK)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_FHPS" , Width ="90", Visible = false, Format ="N0", HeaderText ="FAUCET/ HOSS BIBB/ PERENNIAL SPRAY" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_URINAL" , Width ="90", Visible = false, Format ="N0", HeaderText ="URINAL" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_LAVATORY" , Width ="90", Visible = false, Format ="N0", HeaderText ="LAVATORY" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_SERVICE_SK" , Width ="90", Visible = false, Format ="N0", HeaderText ="SERVICE SINK" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_ABLUTION_TAP" , Width ="90", Visible = false, Format ="N0", HeaderText ="ABLUTION TAP" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_KITCHEN_SK" , Width ="90", Visible = false, Format ="N0", HeaderText ="KITCHEN SINK" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_DK_FOUNTAIN" , Width ="90", Visible = false, Format ="N0", HeaderText ="DRINKING FOUNTAIN" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_HUMIDIFIER" , Width ="90", Visible = false, Format ="N0", HeaderText ="HUMIDIFIER" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_E_WASHER" , Width ="90", Visible = false, Format ="N0", HeaderText ="EYE WASHER" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_E_WS" , Width ="90", Visible = false, Format ="N0", HeaderText ="EYE WASH & SHOWER" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="PF_SHOWER" , Width ="90", Visible = false, Format ="N0", HeaderText ="SHOWER" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }}
            }},
            new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="INDOOR CONDITION", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                new Syncfusion.EJ2.Grids.GridColumn { Field ="ID_COND_SUMM_DB", Width ="100", Visible = false, Format ="N1", HeaderText ="SUMMER DB (°C)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="ID_COND_WNTR_DB", Width ="100", Visible = false, Format ="N1", HeaderText ="WINTER DB (°C)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="ID_COND_RH" , Width ="100", Visible = false, Format ="N0", HeaderText ="RH (%)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }},
                new Syncfusion.EJ2.Grids.GridColumn { Field ="ID_COND_AH" , Width ="100", Visible = false, Format ="N5", HeaderText ="AH (kg/kg)" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right, ValidationRules = new { number = true }}
            }} })">


            </e-grid-column>


            <e-grid-column field="PC_WALL_AREA" visible="false" defaultValue="@empty"></e-grid-column>
            <e-grid-column field="PC_AES" visible="false" defaultValue="@empty"></e-grid-column>
            <e-grid-column field="PC_AL" visible="false" defaultValue="@empty"></e-grid-column>
            <e-grid-column field="PC_QR" visible="false" defaultValue="@empty"></e-grid-column>
            <e-grid-column field="PC_V" visible="false" defaultValue="@empty"></e-grid-column>
            <e-grid-column field="PC_SF" visible="false" defaultValue="@empty"></e-grid-column>


            <e-grid-column field="RA_WINDB" visible="false" defaultValue="@empty"></e-grid-column>
            <e-grid-column field="RA_WINDB_MAX" visible="false" defaultValue="@empty"></e-grid-column>
            <e-grid-column field="RA_AH" visible="false" defaultValue="@empty"></e-grid-column>
            <e-grid-column field="RA_AH_MAX" visible="false" defaultValue="@empty"></e-grid-column>


        </e-grid-columns>
    </ejs-grid>


Above is the full code, below is a part.


 @*Frozen Column*@
            <e-grid-column headerText="ARCHITECTURAL INFORMATION" headerTextAlign="Center" textAlign="Center"
                           columns="@(new List<Syncfusion.EJ2.Grids.GridColumn>() {
                new Syncfusion.EJ2.Grids.GridColumn { HeaderText ="ROOM INFORMATION", HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, Columns = new List<Syncfusion.EJ2.Grids.GridColumn>(){
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_SNO" , Width ="150", HeaderText ="KEY" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Left},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="ROOM_NO" , Width ="90" , HeaderText ="ROOM NO." , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Center , ValidationRules = new { required = true, number=true}},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="ID_COND_ZONE", Width ="90" , HeaderText ="ZONE" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Right , ValidationRules = new { required = true, number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="AIR_SYS_NM" , Width ="90" , HeaderText ="AIR SYSTEM NAME", DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Left , ValidationRules = new { required = true, number=true }},
                    new Syncfusion.EJ2.Grids.GridColumn { Field ="RM_NM" , Width ="140", HeaderText ="ROOM NAME" , DefaultValue ="" , HeaderTextAlign = Syncfusion.EJ2.Grids.TextAlign.Center, TextAlign = Syncfusion.EJ2.Grids.TextAlign.Left , ValidationRules = new { required=true}}}
                }})">
            </e-grid-column>


As you can see here, we have already set up ValidationRules .

At first, if you click Update, an Error occurs.

However, if you press ESC every time a requirement error occurs, you can update.


I'll attach another picture for the details.



thanks.




TK TaeWook Kang March 22, 2022 03:09 AM UTC

1.

update Error 1.png

2.

update Error 2.png



RR Rajapandi Ravi Syncfusion Team March 22, 2022 11:17 AM UTC

Hi Taewook, 

Thanks for the update 

we have considered an improvement feature for this case and logged task for the same as - “Need to consider validation when multiple records are added in batch edit mode”. This feature will be implemented and included in the weekly patch release scheduled to be rolled out by the mid of April 2022. We appreciate your patience until then. 

You can now track the current status of your request, review the proposed resolution timeline, and contact us for any further inquiries through this link. 


Regards, 
Rajapandi R 



RR Rajapandi Ravi Syncfusion Team April 22, 2022 03:15 PM UTC

Hi Taewook,


Sorry for the inconvenienced.


Due to facing complexity of your reported requirement “Need to consider validation when multiple records are added in batch edit mode” we unable to deliver the feature on promised date and currently we are working on this with high priority.


So, we will deliver it in our upcoming patch release which is expected to be roll out in the 1st Week of May 2022.


Until that we appreciate your patience.


Regards,

Rajapandi R



RR Rajapandi Ravi Syncfusion Team May 4, 2022 02:07 PM UTC

Hi Taewook,


We are glad to announce that our Essential Javascript2 patch release (v20.1.52) has been rolled out successfully and in that release, we have added the fix for the issue - “Need to consider validation when multiple records are added in batch edit mode”. So please update your packages to this version to include this fix.


Feedback Link: https://www.syncfusion.com/feedback/32863/need-to-consider-validation-when-multiple-records-are-added-in-batch-edit-mode


We thank you for your support and appreciate your patience in waiting for this release. Please get in touch with us if you would require any further assistance.


Regards,

Rajapandi R


Loader.
Up arrow icon