Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / General / October 2007

Tip: Looking for answers? Try searching our database.

How to dynamically insert rows into a Table control?

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
gnewsgroup - 30 Oct 2007 23:46 GMT
I am new to the asp.net Table web control.  I am using it to customize
my presentation of data.  I cannot implement the idea with DataGrid or
GridView.

Basically, I would like to have something like what is shown in the
following PNG image.

http://farm3.static.flickr.com/2183/1805431357_1facb1ed9b_o.png

I know how to dynamically add rows to the end of the table, but how do
I insert rows right after some particular row?

I guess the problem boils down to getting the current row index.  How
do we get the current row index of a dynamically built Table?  Thank
you.
Norman Yuan - 31 Oct 2007 00:10 GMT
Two ways to do that:

You can add all rows at once and show/hide those brea-down detail rows by
toggling their Visible property;

or

You can inset those break-down detail rows dynamically when needed, using
TableRowCollection.AddAt(index, TableRow).

>I am new to the asp.net Table web control.  I am using it to customize
> my presentation of data.  I cannot implement the idea with DataGrid or
[quoted text clipped - 11 lines]
> do we get the current row index of a dynamically built Table?  Thank
> you.
gnewsgroup - 31 Oct 2007 02:30 GMT
> Two ways to do that:
>
[quoted text clipped - 5 lines]
> You can inset those break-down detail rows dynamically when needed, using
> TableRowCollection.AddAt(index, TableRow).

OK, thank you.  How do I get the row index when the image button is
clicked?  In other words, how do I know in which row the click event
takes place?
gnewsgroup - 31 Oct 2007 03:54 GMT
> Two ways to do that:
>
[quoted text clipped - 5 lines]
> You can inset those break-down detail rows dynamically when needed, using
> TableRowCollection.AddAt(index, TableRow).

> Two ways to do that:
>
[quoted text clipped - 5 lines]
> You can inset those break-down detail rows dynamically when needed, using
> TableRowCollection.AddAt(index, TableRow).

OK, thanks again.  In a GridView, we can usually get the row index of
a click event by attaching the Container.DataItemIndex to the
CommandArgument of the Button.  For example,

<asp:TemplateField HeaderText="Title" >
                   <ItemTemplate>
                       <asp:Label ID="Label1" runat="server">
                       <%# Container.DataItemIndex + 1 %>. <%#
Eval("Title") %>
                       </asp:Label>
                   </ItemTemplate>
</asp:TemplateField>

Can we get the row index like so for a Table control?
Mansi Shah - 31 Oct 2007 06:52 GMT
Hi,

You can get index of currently selected row.
In below example, I have 1 Html table control,I have given it's id
value='tbl' and runat='server', so that I can use it's properties like
other control's properties.

protected void Button2_Click(object sender, EventArgs e)
   {
        int index=0;
        for (int i = 0; i < tbl.Rows.Count; i++)
        {
            Button btn =
(Button)tbl.Rows[i].Cells[0].FindControl("btn");
            if (btn != null)
            {
                index = i;
                break;
            }
        }
   }

You can use any contorl instead Button.

Regards,
Mansi Shah.
gnewsgroup - 31 Oct 2007 14:49 GMT
> Hi,
>
[quoted text clipped - 24 lines]
>
> *** Sent via Developersdexhttp://www.developersdex.com***

Thank you very much.  I tried your code, for my ImageButton click
event, and I get an error as follows:

Multiple controls with the same ID 'imgbtn' were found. FindControl
requires that controls have unique IDs.

The problem is that everything including the ImageButton in my Table
control is dynamically constructed in the code-behind.  So, I don't
know the ID of the ImageButton.

Any other idea about how to get the row index of the clicked row in a
Table control?  Thanks.
gnewsgroup - 31 Oct 2007 15:02 GMT
> > Hi,
>
[quoted text clipped - 37 lines]
> Any other idea about how to get the row index of the clicked row in a
> Table control?  Thanks.

By the way, this is how I construct the table:

           foreach (DataRow dr in dt.Rows)
           {
               TableCell tc0 = new TableCell();
               TableCell tc1 = new TableCell();
               TableCell tc2 = new TableCell();
               TableCell tc3 = new TableCell();

               ImageButton ib = new ImageButton();
               ib.ImageUrl = "~/Images/plus.GIF";
               ib.Click += new
ImageClickEventHandler(ib_Click);

               tc0.Controls.Add(ib);
               tc1.Text = dr["Year"].ToString();
               tc2.Text = dr["Import Total"].ToString();
               tc3.Text = dr["Export Total"].ToString();

               TableRow tr = new TableRow();
               tr.Cells.Add(tc0);
               tr.Cells.Add(tc1);
               tr.Cells.Add(tc2);
               tr.Cells.Add(tc3);

               tbl1.Rows.Add(tr);
           }

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.