Ejemplo n.º 1
0
        /// <summary>
        /// Constructor. Note. The column specifications must be defined via the DatatableSettings constructor
        /// </summary>
        /// <param name="id">HTML field ID for the Datatable</param>
        /// <param name="settings">Datatable settings</param>
        /// <param name="records">Datatable records</param>
        /// <param name="postbacks">[Optional] Postback data for server side processing</param>
        /// <param name="enableStatusColumn">[Optional] flag indicating whether to enable status column. Defaults to false</param>
        public Datatable(string id, DatatableSettings settings, DatatableRecords records, IEnumerable <PostbackItem> postbacks = null, bool enableStatusColumn = false)
        {
            if (settings.aoColumns == null)
            {
                throw new NullReferenceException("Column setup not done. DatatableSettings.aoColumns property must be set in order to compose the datatable");
            }

            ID        = id.Replace("-", "_");
            Settings  = settings;
            Records   = records;
            Postbacks = postbacks != null?postbacks.ToArray() : new PostbackItem[0];

            EnableStatusColumn = enableStatusColumn;

            if (EnableStatusColumn)
            {
                settings.aoColumns = settings.aoColumns.Concat(new[] { new AOColumn {
                                                                           bVisible = false
                                                                       } }).ToArray();
                settings.SetupfnCreatedRow();
            }

            settings.SetupfnServerData(Postbacks);
        }