Home All Groups Group Topic Archive Search About

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

Author
29 Apr 2005 11:35 PM
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?

Author
2 May 2005 1:57 PM
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

Show quoteHide quote
"Jim Bancroft" <asdfs***@nowhere.com> wrote in message
news:OTq8DRRTFHA.632@TK2MSFTNGP10.phx.gbl...
> 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?
>
>
Author
2 May 2005 3:51 PM
Jim Bancroft
Thanks-- I'll give it a shot.

-Jim
Author
2 May 2005 8:54 PM
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.




Show quoteHide quote
"Jim Bancroft" <asdfs***@nowhere.com> wrote in message
news:OTq8DRRTFHA.632@TK2MSFTNGP10.phx.gbl...
> 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?
>
>