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

Discussion in 'ASP .Net Datagrid Control' started by Jim Bancroft, Apr 30, 2005.

  1. Jim Bancroft

    Jim Bancroft Guest

    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?
     
    Jim Bancroft, Apr 30, 2005
    #1
    1. Advertising

  2. Jim Bancroft

    Sambathraj Guest

    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

    "Jim Bancroft" <> wrote in message
    news:...
    > 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?
    >
    >
     
    Sambathraj, May 2, 2005
    #2
    1. Advertising

  3. Jim Bancroft

    Jim Bancroft Guest

    Thanks-- I'll give it a shot.

    -Jim
     
    Jim Bancroft, May 2, 2005
    #3
  4. Jim Bancroft

    Bob Weiner Guest

    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.




    "Jim Bancroft" <> wrote in message
    news:...
    > 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?
    >
    >
     
    Bob Weiner, May 2, 2005
    #4
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Jim Bancroft
    Replies:
    3
    Views:
    1,877
    Bob Weiner
    May 2, 2005
  2. Replies:
    5
    Views:
    584
    Karl Seguin
    Dec 8, 2005
  3. Replies:
    0
    Views:
    350
  4. JimB

    Template Columns in DataGrids

    JimB, Nov 6, 2003, in forum: ASP .Net Datagrid Control
    Replies:
    4
    Views:
    135
    Giorgio Parmeggiani
    Nov 10, 2003
  5. Juergen

    Fixing columns and header in datagrids

    Juergen, Jun 24, 2004, in forum: ASP .Net Web Controls
    Replies:
    0
    Views:
    131
    Juergen
    Jun 24, 2004
Loading...

Share This Page