Features

Disable Server Reading

Disable Server Reading

Features

MultiRow without paging



Paging MultiRow which PageSize is set to 10

Settings

Description

This sample shows what the DisableServerRead property works for.

When it is set to True, all the items will be transferred to the client side. Sorting, paging or filtering will be done in the client side. And the text like "Loading..." is not shown for loading the data when the scrollbar scrolls. Otherwise, sorting, paging or filtering will be done in server side. And sometimes the "Loading..." text will be shown.

using System.Collections.Generic;
using C1.Web.Mvc;
using Microsoft.AspNetCore.Mvc;
using MultiRowExplorer.Models;
using C1.Web.Mvc.Serialization;
using Microsoft.AspNetCore.Http;

namespace MultiRowExplorer.Controllers
{
    public partial class MultiRowController : Controller
    {
        private readonly ControlOptions _disableServerReadSetting = new ControlOptions
        {
            Options = new OptionDictionary
            {
                {"Disable Server Read",new OptionItem{Values = new List<string> {"True", "False"},CurrentValue = "True"}}
            }
        };

        public ActionResult DisableServerRead(IFormCollection collection)
        {
            _disableServerReadSetting.LoadPostData(collection);
            ViewBag.DemoOptions = _disableServerReadSetting;
            return View();
        }

        public ActionResult DisableServerRead_Bind([C1JsonRequest] CollectionViewRequest<Sale> requestData)
        {
            return this.C1Json(CollectionViewHelper.Read(requestData, Sale.GetData(500)));
        }

    }
}
@model IEnumerable<Sale>

@{
    ControlOptions optionsModel = ViewBag.DemoOptions;
    ViewBag.DemoSettings = true;
}

@section Styles{
    <style>
        label {
            display: inline-block;
            font-weight: normal;
            padding: 3px;
        }
    </style>
}

<h4>MultiRow without paging</h4>

<c1-multi-row id="dsrMultiRow" class="multirow" is-read-only="true">
    <c1-flex-grid-filter></c1-flex-grid-filter>
    <c1-items-source disable-server-read="@(Convert.ToBoolean(optionsModel.Options["Disable Server Read"].CurrentValue))"
                     initial-items-count="10"
                     read-action-url="@Url.Action("DisableServerRead_Bind")"></c1-items-source>
    <c1-multi-row-cell-group>
        <c1-multi-row-cell binding="ID"></c1-multi-row-cell>
        <c1-multi-row-cell binding="Active"></c1-multi-row-cell>
    </c1-multi-row-cell-group>
    <c1-multi-row-cell-group>
        <c1-multi-row-cell binding="Start"></c1-multi-row-cell>
        <c1-multi-row-cell binding="End"></c1-multi-row-cell>
    </c1-multi-row-cell-group>
    <c1-multi-row-cell-group colspan="2">
        <c1-multi-row-cell binding="Country" colspan="2"></c1-multi-row-cell>
        <c1-multi-row-cell binding="Product"></c1-multi-row-cell>
        <c1-multi-row-cell binding="Color"></c1-multi-row-cell>
    </c1-multi-row-cell-group>
    <c1-multi-row-cell-group colspan="2">
        <c1-multi-row-cell binding="Amount"></c1-multi-row-cell>
        <c1-multi-row-cell binding="Amount2"></c1-multi-row-cell>
        <c1-multi-row-cell binding="Discount" colspan="2"></c1-multi-row-cell>
    </c1-multi-row-cell-group>
</c1-multi-row>

<br />
<br />
<h4>Paging MultiRow which PageSize is set to 10</h4>

<c1-multi-row id="dsrPagingMultiRow" class="multirow" is-read-only="true">
    <c1-flex-grid-filter></c1-flex-grid-filter>
    <c1-items-source disable-server-read="@(Convert.ToBoolean(optionsModel.Options["Disable Server Read"].CurrentValue))"
                     page-size="10"
                     read-action-url="@Url.Action("DisableServerRead_Bind")"></c1-items-source>
    <c1-multi-row-cell-group>
        <c1-multi-row-cell binding="ID"></c1-multi-row-cell>
        <c1-multi-row-cell binding="Active"></c1-multi-row-cell>
    </c1-multi-row-cell-group>
    <c1-multi-row-cell-group>
        <c1-multi-row-cell binding="Start"></c1-multi-row-cell>
        <c1-multi-row-cell binding="End"></c1-multi-row-cell>
    </c1-multi-row-cell-group>
    <c1-multi-row-cell-group colspan="2">
        <c1-multi-row-cell binding="Country" colspan="2"></c1-multi-row-cell>
        <c1-multi-row-cell binding="Product"></c1-multi-row-cell>
        <c1-multi-row-cell binding="Color"></c1-multi-row-cell>
    </c1-multi-row-cell-group>
    <c1-multi-row-cell-group colspan="2">
        <c1-multi-row-cell binding="Amount"></c1-multi-row-cell>
        <c1-multi-row-cell binding="Amount2"></c1-multi-row-cell>
        <c1-multi-row-cell binding="Discount" colspan="2"></c1-multi-row-cell>
    </c1-multi-row-cell-group>
</c1-multi-row>

<c1-pager owner="dsrPagingMultiRow"></c1-pager>

@section Settings{
    @Html.Partial("_OptionsMenu", optionsModel)
}

@section Description{
    <p>
        This sample shows what the <b>DisableServerRead</b> property works for.
    </p><p>
        When it is set to True, all the items will be transferred to the client side. Sorting, paging or filtering will be done in the client side.
        And the text like "Loading..." is not shown for loading the data when the scrollbar scrolls.
        Otherwise, sorting, paging or filtering will be done in server side. And sometimes the "Loading..." text will be shown.
    </p>
}