Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > How to dynamically insert rows into a Table control?

Reply
Thread Tools

How to dynamically insert rows into a Table control?

 
 
gnewsgroup
Guest
Posts: n/a
 
      10-30-2007
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/...acb1ed9b_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.

 
Reply With Quote
 
 
 
 
Norman Yuan
Guest
Posts: n/a
 
      10-30-2007
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).


"gnewsgroup" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) ups.com...
>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/...acb1ed9b_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.
>


 
Reply With Quote
 
 
 
 
gnewsgroup
Guest
Posts: n/a
 
      10-31-2007
On Oct 30, 7:10 pm, "Norman Yuan" <(E-Mail Removed)> wrote:
> 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).
>


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?

 
Reply With Quote
 
gnewsgroup
Guest
Posts: n/a
 
      10-31-2007
On Oct 30, 7:10 pm, "Norman Yuan" <(E-Mail Removed)> wrote:
> 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).
>


On Oct 30, 7:10 pm, "Norman Yuan" <(E-Mail Removed)> wrote:
> 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).
>


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?

 
Reply With Quote
 
Mansi Shah
Guest
Posts: n/a
 
      10-31-2007

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.

*** Sent via Developersdex http://www.developersdex.com ***
 
Reply With Quote
 
gnewsgroup
Guest
Posts: n/a
 
      10-31-2007
On Oct 31, 1:52 am, Mansi Shah <(E-Mail Removed)> wrote:
> 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.
>
> *** 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.

 
Reply With Quote
 
gnewsgroup
Guest
Posts: n/a
 
      10-31-2007
On Oct 31, 9:49 am, gnewsgroup <(E-Mail Removed)> wrote:
> On Oct 31, 1:52 am, Mansi Shah <(E-Mail Removed)> wrote:
>
>
>
> > 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.

>
> > *** 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.


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);
}

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: How include a large array? Edward A. Falk C Programming 1 04-04-2013 08:07 PM
Moving dynamically created table rows up and down in an HTML table T.G. Javascript 2 10-14-2008 12:56 PM
How to improve the performance when insert many rows into a table Hendry Javascript 1 03-02-2006 03:32 AM
Can't seem to insert rows into a MySQL table grumfish Python 11 03-15-2005 11:06 PM
Help ASP; get last inserted value from one table, insert multiple rows in another table. PT ASP General 1 10-07-2004 07:27 AM



Advertisments