MVC: Loading a DataSet from the ViewBag
The HTML5 based editor and template designer is typically used to create mail merge templates in web applications. The data source for the Reports ribbon tab can be pre-loaded in the view using the LoadDataSet method. Using this data source, the available merge field and merge block drop-down lists are populated. The following code shows how to create a DataSet in the controller that is stored in the ViewBag: In the view, the LoadDataSet method is used to load the stored DataSet from the…

The HTML5 based editor and template designer is typically used to create mail merge templates in web applications.
The data source for the Reports ribbon tab can be pre-loaded in the view using the LoadDataSet method. Using this data source, the available merge field and merge block drop-down lists are populated.
The following code shows how to create a DataSet in the controller that is stored in the ViewBag:
public ActionResult Index()
{
DataSet ds = new DataSet();
// create the outer table that has a relation
// to the child table "product"
DataTable dtReport = new DataTable("report");
dtReport.Columns.Add("report_id",
Type.GetType("System.Int32"));
dtReport.Rows.Add(new object[] { 0 });
ds.Tables.Add(dtReport);
// create a table "products"
DataTable dtProduct = new DataTable("product");
dtProduct.Columns.Add(new DataColumn("report_id",
Type.GetType("System.Int32")));
dtProduct.Columns.Add(new DataColumn("Product_ID",
Type.GetType("System.Int32")));
dtProduct.Columns.Add(new DataColumn("Product_Name",
Type.GetType("System.String")));
dtProduct.Columns.Add(new DataColumn("product_Price",
Type.GetType("System.Int32")));
dtProduct.Rows.Add(new object[] { 0, 1, "Product 1", 1000 });
dtProduct.Rows.Add(new object[] { 0, 2, "Product 2", 2000 });
dtProduct.Rows.Add(new object[] { 0, 3, "Product 3", 3000 });
ds.Tables.Add(dtProduct);
// create the relation
ds.Relations.Add(new DataRelation("relation1",
dtReport.Columns["report_id"],
dtProduct.Columns["report_id"], false));
// fill the ViewBag and return the view
ViewBag.dataSet = ds;
return View();
}
In the view, the LoadDataSet method is used to load the stored DataSet from the ViewBag.
@Html.TXTextControl().TextControl().LoadDataSet(
(System.Data.DataSet)ViewBag.dataSet).Render()
The drop-down lists are now pre-populated with the available merge fields and merge blocks:
Related Posts
MailMerge Class Settings Explained
This article explains the different settings of the MailMerge class and how and when they should be used.
MailMerge: Conditional Table Cell Colors using Filter Instructions
The MailMerge class provides an extensible framework to inject custom logic to the merge process. This sample shows how to implement conditional table cell colors.
MailMerge: Using Filters to Remove Unwanted Rows
Data in merge blocks can be filtered and sorted. This article explains how to use filters to remove unwanted lines.
Different Ways to Create Documents using Text Control Products
There are many ways to create documents using Text Control products. This article gives an overview of different approaches using our products.
MVC: Adding an Electronic Signature to Documents in Web.TextControl
An electronic signature is in many processes legally sufficient to prove an identity. According to the U.S. Federal ESIGN Act passed in 2000, an electronic signature is an: Electronic sound,…