Products Technologies Demo Docs Blog Support Company

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…

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:

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:

MVC: Loading a DataSet from the ViewBag

Stay in the loop!

Subscribe to the newsletter to receive the latest updates.

Related Posts

ASP.NETReportingMail Merge

MailMerge Class Settings Explained

This article explains the different settings of the MailMerge class and how and when they should be used.


ASP.NETReportingWindows Forms

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.


ASP.NETReportingWindows Forms

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.


ASP.NETReportingWindows Forms

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.


ASP.NETReportingGitHub

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,…