binding ArrayLists to DataGrids-- how to name the columns?

J

Jim Bancroft

Hi everyone,

I'm binding an ArrayList to a DataGrid for the first time (I'm used to
binding DataSets and DataTables) and I was wondering if I could somehow
"name" the ArrayList, so that I can refer to it as a DataField in an
asp:BoundColumn?

In essence, I'm doing this:

ArrayList Arr1 = new ArrayList();

Arr1.Add("John");
Arr1.Add("Melissa");
Arr1.Add("Tim");

MyDataGrid.DataSource = Arr1;
MyDataGrid.DataBind();

Now I'd like to use an <asp:BoundColumn> control in the DataGrid, but I
don't know what the DataField value is for the ArrayList I just added. Can
I somehow associate a DataField value with the ArrayList?
 
S

Sambathraj

Hi,
Try the following way. Instead of adding string into the arrylist add class
objects exposing required properties.

class Task

{

private string _TaskName;

private string _Editable;

private int _Priority;

public Task(string TaskName, string Editable, int Priority)

{

_TaskName = TaskName;

_Editable = Editable;

_Priority = Priority;

}

public string TaskName { get { return _TaskName; } }

public string Editable { get { return _Editable; } }

public int Priority { get { return _Priority; } }

}

/// <summary>

/// Summary description for WebForm2.

/// </summary>

public class WebForm2 : System.Web.UI.Page

{

protected System.Web.UI.WebControls.DropDownList DropDownList1;

public ArrayList Arr1;

private void Page_Load(object sender, System.EventArgs e)

{

ArrayList arr = new ArrayList();

// Start initial creation and filling of array.

arr.Add (new Task ("Tomorrow's work", "yes", 2));

arr.Add (new Task ("Today's work", "yes", 1));

arr.Add (new Task ("Yesterday's work", "No", 3));





DropDownList1.DataSource = arr;

DropDownList1.DataTextField = "TaskName";

DropDownList1.DataValueField = "Priority";

DropDownList1.DataBind();

DropDownList1.Attributes.Add("onChange","Javascript: alert(this.value)") ;


}

}


Regards,
Sambathraj
 
B

Bob Weiner

I have the same problem. I want bind a DataGrid to a string array which
seems like it should be a simple thing to do.


I have
<Columns>
<asp:BoundColumn> HeaderText = "File Name"</asp:BoundColumn>
<asp:ButtonColumn> Text = "View" HeaderText = "View"</asp:ButtonColumn>
<asp:ButtonColumn> Text = "Download" HeaderText =
"Download"</asp:ButtonColumn>
</Columns>

In the code I have:
<snip>
dg.DataSource = outQueue.FileList; // string []
dbDataBind();
</snip>


With AutoGenerateColumns = "false", the DataGrid is empty. If I set
AutoGenerateColumns = "true" I get a 4th column labled "Item" which contains
my FileList. How do I get my FileList inside my first column? It would
seem it is an easy thing to do.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,012
Latest member
RoxanneDzm

Latest Threads

Top