Problem while dynamically removing row from Data Grid

S

Sameer Mowade

Hello All,

I have problem while dynamically removing row from the Datagrid which i
have added dynamically as shown in the following code snippet. The
problem is that while removing dynamically added row it also removes the
row at the end along with the added row.

Plz tell me if, I am missing any thing.

Code [*]

</asp:datagrid>

Asp Code==>

<asp:datagrid id="PartGrid" Runat="server" AutoGenerateColumns="False"
AllowPaging="True" ageSize="10">

<Columns>

<asp:TemplateColumn>

<ItemTemplate>

<asp:LinkButton id="btnDetail" Runat="server"
CommandName="Expand">+</asp:LinkButton>

</ItemTemplate>

</asp:TemplateColumn>

<asp:BoundColumn DataField="partName" HeaderText="Part Name" />

<asp:BoundColumn DataField="partType" HeaderText="Part Type" />

<asp:BoundColumn DataField="status" HeaderText="Status" />

</Columns>

</asp:datagrid>

Code behind file (1) In the Item created event adding the Click event
handler for the button

private void PartGrid_ItemCreated(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)

{

ListItemType eItemtype = e.Item.ItemType;

if ( eItemtype == ListItemType.AlternatingItem || eItemtype ==
ListItemType.Item)

{

btnDetail = e.Item.FindControl("btnDetail") as LinkButton;

btnDetail.Click += new EventHandler(btnDetail_Click);

}

}

(2)On click event Adding the new new row . In this event handler Adding
the row if Button text is "+" else

I am trying to remove it. The Adding functionality working fine but
while removing, it is also removing the extra row at the end. plz help
me out.

private void btnDetail_Click(object sender, EventArgs e)

{

LinkButton btnTemp = sender as LinkButton;

if(btnTemp.Text == "+")

{

btnTemp.Text = "-";

DataGridItem item = (DataGridItem)((LinkButton)sender).NamingContainer;
//Getting the container row

int rowIndex =
((Table)(PartGrid.Controls[0])).Rows.GetRowIndex((TableRow)item);//its
row index

DataGridItem dgRow = new DataGridItem(rowIndex + 1, 0,
ListItemType.Item); //new Datagrid row


TableCell cell = new TableCell();

cell.ColumnSpan = item.Cells.Count;

cell.Controls.Add(new Label());

dgRow.Cells.Add(cell);

((Table)(PartGrid.Controls[0])).Rows.AddAt(rowIndex + 1, dgRow);

}

else

{

btnTemp.Text = "+";

DataGridItem item = (DataGridItem)((LinkButton)sender).NamingContainer;

int rowIndex =
((Table)(PartGrid.Controls[0])).Rows.GetRowIndex((TableRow)item);

((Table)(PartGrid.Controls[0])).Rows.RemoveAt(rowIndex + 1);

}

}

Thanks in Advance

Sameer
 

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

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top