Build a PDF form in code, add a table with several column types, and prepare it for browser input.

Defining the table. The example creates the form and page first, then adds a table whose columns use text, combo-box, and numeric editors.

Column setup. The builder in Creating a Form with Table/Controllers/FormsController.cs configures captions, widths, selectable values, and totals before the table is added to the page:
private StiForm CreateForm()
        {
            var form = new StiForm();

            var page = new StiFormPage();
            form.Pages.Add(page);

            var label = new StiLabelElement()
            {
                Geometry = new StiRectangleGeometry(0, 0, page.ContentAreaWidth, 200)
            };

            label.Text.Expression = "Custom Order Form";
            label.Text.Font = new System.Drawing.Font("Segoe UI", 44, System.Drawing.FontStyle.Bold);
            label.Text.HorizontalAlignment = StiHorizontalAlignment.Center;

            page.Elements.Add(label);

            var table = new StiTableElement()
            {
                Geometry = new StiRectangleGeometry(0, 200, page.ContentAreaWidth, 500),
                Padding = new StiPadding(0)
            };

            table.Columns.Add(new StiTextBoxColumnItem()
            {
                Label = "ITEM",
                HeaderAlignment = StiHorizontalAlignment.Center,
            });

            var sizeItem = new StiComboBoxColumnItem()
            {
                Label = "SIZE",
                HeaderAlignment = StiHorizontalAlignment.Center,
            };
            sizeItem.ComboBoxOptions.Add("S");
            sizeItem.ComboBoxOptions.Add("M");
            sizeItem.ComboBoxOptions.Add("L");
            table.Columns.Add(sizeItem);

            table.Columns.Add(new StiTextBoxColumnItem()
            {
                Label = "COLOR",
                HeaderAlignment = StiHorizontalAlignment.Center,
            });

            table.Columns.Add(new StiNumberBoxColumnItem()
            {
                Label = "QTY",
                HeaderAlignment = StiHorizontalAlignment.Center,
                DecimalDigits = 0,
                Width = 30,
            });

            table.Columns.Add(new StiNumberBoxColumnItem()
            {
                Label = "PRCE",
                HeaderAlignment = StiHorizontalAlignment.Center,
                Width = 60,
                UnitLabel = "$",
                UnitAlignment = StiUnitAlignment.PrefixInside
            });

            table.Columns.Add(new StiLabelColumnItem()
            {
                Label = "Total",
                HeaderAlignment = StiHorizontalAlignment.Center,
                Expression = "{Col(4) * Col(5)}",
                Prefix = "$",
                CellAlignment = StiHorizontalAlignment.Right

Ready for input. Because the complete definition is created in code, the same structure can be adjusted from application data before it reaches the browser.

By using this website, you agree to the use of cookies for analytics and personalized content. Cookies store useful information on your computer to help us improve efficiency and usability. For more information, please read the privacy policy and cookie policy.