CS4 webControl25

CS4 webControl25

DataTable25

DataTable25 is a reusable server-side HTML table builder designed for ASP.NET MVC / Razor applications. It dynamically renders editable rows with multiple control types and supports add/delete rows, auto-complete, postback events, and view-only mode.

Key Features

  • Dynamic column configuration
  • Multiple input control types
  • Add / Delete rows
  • AutoComplete (URL & static list)
  • Column-level PostBack support
  • Hidden field binding
  • Date & Time picker support

DataTable25.Properties

PropertyTypeDescription
ControlIdstringHTML ID of the table
ModelIdstringModel prefix for form binding
IsViewboolView-only mode
ColumnsList<Columns>Column definitions
RowValueListList<object>Row data source

DataTable25.Columns

PropertyDescription
ColumnIdModel property name
ColumnNameColumn header text
ControlTypeInput control type
PlaceHolderInput placeholder
CustomWidthColumn width
IsRequiredShows required *
ReadOnlyDisables control
EnablePostBackTriggers server postback
AutoCompleteUrlAJAX autocomplete URL
AutoCompleteListStatic autocomplete list
HiddenFieldIdHidden model field
ListItemsDropdown items
ListIdDynamic dropdown source

Control Types

  • TextBox
  • Number
  • TextArea
  • ListBox (Dropdown)
  • CheckBox
  • Date
  • Time
  • File

6AutoComplete Support

URL Based


AutoCompleteUrl = "/Item/Search";
    

Static List


AutoCompleteList = "['Item1','Item2','Item3']";
    

PostBack Handling


var info = DataTable25.GetPostBackInfo();
    
FieldDescription
ControlIdTriggered control
RowIdRow index
ColumnNameColumn name

Sample code


 public void LoadMultiEntry(Models.FormModel.AddForm model)
 {
     try
     {
         var postinfo = DataTable25.GetPostBackInfo();

         var RowvalueList = new List();
         var Type = new DataTable25.Columns
         {
             ColumnId = "Type",
             ColumnName = "Type",
             ControlType = DataTable25.ControlType.ListBox,
             PlaceHolder = "Select",
             IsRequired = false,
             EnablePostBack = true,
             ListItems = new DataTable25.ListItems()
             {
                 Values = new List() { "", "Breakfast", "Lunch", "Snacks" },
                 Ids = new List() { "", "Breakfast", "Lunch", "Snacks" }
             },

         };
         var ItemName = new DataTable25.Columns
         {
             ColumnId = "ItemName",
             ColumnName = "Item Name",
             ControlType = DataTable25.ControlType.ListBox,
             PlaceHolder = "Select",
             IsRequired = false,
             ListId = "ItemNameList"
         };
         var Quantity = new DataTable25.Columns
         {
             ColumnId = "Quantity",
             ColumnName = "Quantity",
             ControlType = DataTable25.ControlType.Number,
             PlaceHolder = "0",
             IsRequired = false,
             EnablePostBack = true,
             CustomWidth = "15%"
         };
         var Price = new DataTable25.Columns
         {
             ColumnId = "Price",
             ColumnName = "Price",
             ControlType = DataTable25.ControlType.TextBox,
             PlaceHolder = "0",
             IsRequired = false,
             ReadOnly = false,
             CustomWidth = "15%"
         };
         var Time = new DataTable25.Columns
         {
             ColumnId = "StartTime",
             ColumnName = "Start Time",
             ControlType = DataTable25.ControlType.Time,
             PlaceHolder = "",
             IsRequired = false,
             ReadOnly = false,
             CustomWidth = "20%",
             HiddenFieldId = "SlotId"
         };
         var EndTime = new DataTable25.Columns
         {
             ColumnId = "EndTime",
             ColumnName = "End Time",
             ControlType = DataTable25.ControlType.Time,
             PlaceHolder = "",
             IsRequired = false,
             ReadOnly = false,
             CustomWidth = "20%",

         };
         List cols = new List() { Type, ItemName, Quantity, Price };
         var ItemNameList = new List();
         if (model.Items != null && model.Items.Count > 0)
         {
             foreach (var items in model.Items)
             {
                 string price = "0";
                 int ItemPrice = 0;
                 if (items.Type == "Breakfast") { ItemNameList = new List() { "", "Idly", "Paruppu Vadai" }; }
                 if (items.Type == "Lunch") { ItemNameList = new List() { "", "Plain Biryani", "Gravy" }; }
                 if (items.Type == "Snacks") { ItemNameList = new List() { "", "Vadai" }; }
                 if (items.Quantity != "0")
                 {
                     ItemPrice = GetPrice(items.ItemName);
                     price = (Convert.ToInt32(items.Quantity) * ItemPrice).ToString();
                 }
                
                 var item = new Models.FormModel.Item
                 {
                     Price = "0",
                     ItemName = items.ItemName,
                     Type = items.Type,
                     Quantity = items.Quantity,
                     ItemNameList = ItemNameList,
                     //Price = price,
                     EndTime = items.EndTime,
                     StartTime = items.StartTime
                 };
                 RowvalueList.Add(item);
             }
         }
         else
         {
             ItemNameList = new List() { "", "Idly", "Paruppu Vadai" };
             var item = new Models.FormModel.Item
             {
                 ItemName = "",
                 Type = "",
                 Quantity = "0",
                 ItemNameList = ItemNameList,
                 Price = "0",
                 StartTime = DateTime.Now.ToString("hh:mm tt"),
                 EndTime = DateTime.Now.ToString("hh:mm tt"),
                 SlotId = "5"
             };
             RowvalueList.Add(item);
         }

         DataTable25.Properties prop = new DataTable25.Properties
         {
             Columns = cols,
             RowValueList = RowvalueList,
             ControlId = "ItemTable",
             ModelId = "Items",
             IsView = false,
         };
         model.ItemTable = DataTable25.GetHtml(prop).ToString() ?? "";
     }
 }