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