Digital Colony!

Quickly Populating a GridView With Dummy Data

Maybe the database table isn't ready yet, but you'd like to start working on a new GridView. What you need is a quick and dirty way to load up a GridView control with sample data.

Drop a GridView Control onto the .ASPX Page

<asp:GridView ID="gvExample" runat="server" />

Helper Functions

In the article Generating Random Number and String in C#, author Mahesh Chand wrote 2 random functions: RandomNumber and RandomString. I modified them slightly by making the random variable public. This will allow us to get a fresh random number with each call.

LoadGridView

The parameters for this function are:

columnCount: Number of columns
rowCount: Number of rows
useNumeric: Use Numeric Data (true/false)
rowLength: Length of Text inside rows
minNumber: Lower range of numeric data
maxNumber: Upper range of numeric data
public Random random = new Random();

protected void Page_Load(object sender, EventArgs e)
{
    // # columns, # rows, useNumeric (T/F), rowLength, minNumber, maxNumber
    LoadGridView(4, 12, true, 14, 500, 1500);
}

public void LoadGridView(int columnCount, int rowCount, bool useNumeric, int rowLength, int minNumber, int maxNumber)
{
    DataTable dt = new DataTable();
    dt.Columns.Add(new DataColumn(" ", typeof(string)));

    for (int c = 0; c < columnCount; c++)
    {
        string columnName = RandomString(rowLength, false);
        if(useNumeric==true)
        {
            dt.Columns.Add(new DataColumn(columnName, typeof(Int32)));
        }
        else
        {
            dt.Columns.Add(new DataColumn(columnName, typeof(string)));
        }
    }           

    for (int j = 1; j <= rowCount; j++)
    {
        DataRow dr = dt.NewRow();
        dr[0] = RandomString(4, false);
        for (int k = 1; k <= columnCount; k++)
        {
            if (useNumeric == true)
            {                    
                dr[k] = RandomNumber(minNumber, maxNumber);
            }
            else
            {
                dr[k] = RandomString(rowLength, true);
            }               
        }
        dt.Rows.Add(dr);                      
    }
   
    gvExample.DataSource = dt;
    gvExample.DataBind();    
}

private int RandomNumber(int min, int max)
{               
    return random.Next(min, max);
}

private string RandomString(int size, bool lowerCase)
{
    StringBuilder builder = new StringBuilder();
    char ch;
    for (int i = 0; i < size; i++)
    {
        ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
        builder.Append(ch);
    }
    if (lowerCase)
        return builder.ToString().ToLower();
    return builder.ToString();
}

Labels: , ,

 

Digital Colony Copyright © 1999-2008 XHTML   508
This site uses Blogger, which is not 100% XHTML compliant.
Try...Catch Disclaimer: For brevity many examples do not include error handling. That is your responsibility.