HejDatagrid i en datagrid
Jag har sett exempel på en datagrid som innehåller en annan datagrid när du klickar på ett plustecken.
Jag har dock bara sett detta med xml filer och kan inte omvandla det till sql-server.
Någon som vet var det finns ett sådan exempel eller kan hjälpa mig.
Så här har jag nu.
allt skapas från codebehind
Jag har en TemplateColumn som visar en ImageButton och när du klickar på den så
har jag en annan TemplateColumn som innehåller en PlaceHolder
<code>
public rTemplateColumn(string cname)
{
colname=cname;
}
public void InstantiateIn(Control container)
{
PlaceHolder ExpandContent = new PlaceHolder();
ExpandContent.ID = "ExpandContent";
ExpandContent.Visible = false;
ExpandContent.DataBinding += new EventHandler(this.OnDataBinding);container.Controls.Add(ExpandContent);
}
public void OnDataBinding(object sender, EventArgs e)
{
PlaceHolder ExpandContent = (PlaceHolder) sender;
LiteralControl l = new LiteralControl();
l.Text = "</td></tr><tr><td width='9'></td><td colspan='3'>";
ExpandContent.Controls.Add(l);
}
</code>
Det jag vill är att Placeholdern ska innehålla en datagrid. Men hur ska jag binda den. Ska jag skicka med in mitt ID som tar ut den unika Griden för just den raden in här. Eller hur ska jag göra.
Jag får även fel när jag kör denna. Första gången jag kör så blir det ett minustecken och placeholdern visas. Men när jag nästa gång klickar på minuset så blir det inte ett plus och placeholder döljs inte.
<code>
private void Grid1_ItemCommand(object source, DataGridCommandEventArgs e)
{
if(e.CommandName=="Expand")
{
PlaceHolder ExpandContent =(PlaceHolder)e.Item.Cells[Grid1.Columns.Count-1].FindControl("ExpandContent");
if(!ExpandContent.Visible)
ExpandContent.Visible = true;
else
ExpandContent.Visible = false;
ImageButton btnExpand = (ImageButton)e.Item.Cells[0].FindControl("btnExpand");
if(btnExpand.ImageUrl==@"Images\tree\treeStyle_Explorer\plusik.gif")
btnExpand.ImageUrl=@"Images\tree\treeStyle_Explorer\minus.gif";
else
btnExpand.ImageUrl=@"Images\tree\treeStyle_Explorer\plusik.gif";
}
}
</code>
ytterligare en fråga. I vb.net kan man skriva test.visible = not test.visible finns det någon motsvarighet i c#