Avatar billede idiotbarn Nybegynder
28. april 2006 - 18:16 Der er 13 kommentarer og
2 løsninger

Edit i inderste nested datagrid

Jeg har et nested datagrid, grid1 som i hver række har en grid2.
Planen er at man skulle kunne vælge Edit i yderste, se en masse ting, sammen med grid2. Hvis man vil rette i grid 2 klikker man igen edit, hvorefter man kan redigere den inderste. Jeg kan godt binde, men kan ikke rigtigt fange editkommandoen, eller finde mit nestede datagrid.

jeg binder grid2 gennem onitemdatabound fra grid1:

if(e.Item.ItemType == ListItemType.EditItem)
{
System.Web.UI.Control olbCtl = e.Item.FindControl("grid2");
if (null != olbCtl && olbCtl is DataGrid)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
String discoID = drv["Id"].ToString();

//Bind data til grid2
DataTable ds = this.PlaylistDataBind(discoID);
DataGrid dg = (DataGrid)olbCtl;
dg.ItemDataBound += new DataGridItemEventHandler(this.grid2_OnItemDataBound);
dg.EditCommand += new DataGridCommandEventHandler(this.grid2_Edit);
dg.ItemCommand += new DataGridCommandEventHandler(this.grid2_ItemCommand);
                   
dg.DataSource = ds;
dg.DataBind();
}
}

jeg kan nemt binde data, og kan også fange OnItemDataBound og ItemCommand for grid2, men ikke edit.
Så...kan jeg enten fange Edit kommandoen, eller hvordan finder jeg frem til min grid2 gennem ItemCommand? Det er meningen jeg vil sætte grid2 i edit mode...Kan de lade sig gøre?
Avatar billede dr_chaos Nybegynder
29. april 2006 - 09:03 #1
kan du ikke bare tilføje datagridet til en itemtemplate ?
Avatar billede idiotbarn Nybegynder
29. april 2006 - 17:33 #2
jo...har jeg også, men den fanger ikke:
dg.EditCommand += new DataGridCommandEventHandler(this.grid2_Edit);

hvis jeg tilføjer den i design-mode, får jeg en object not found...
Avatar billede idiotbarn Nybegynder
29. april 2006 - 17:35 #3
altså...tilføjer jeg den i designmode udføre den grid2_Edit, men jeg kan ikke gøre noget med grid2 uden at få en not found...
Avatar billede dr_chaos Nybegynder
29. april 2006 - 17:37 #4
hvis den er tilføjet til en itemtemplate.
så skal databinde den i i itemdatabound.
Avatar billede idiotbarn Nybegynder
29. april 2006 - 17:39 #5
ja...dét er heller ikke det er problemet..jeg kan ikke sætte det nestede i edit-mode
Avatar billede dr_chaos Nybegynder
29. april 2006 - 17:40 #6
i f.eks. page load skal du tilføje:
foreach(Datagridrow dr in grid1.Rows)
{
System.Web.UI.Control olbCtl = dr.Cells[etid].FindControl("grid2");
if (null != olbCtl && olbCtl is DataGrid)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
String discoID = drv["Id"].ToString();

//Bind data til grid2
//DataTable ds = this.PlaylistDataBind(discoID);
DataGrid dg = (DataGrid)olbCtl;
dg.ItemDataBound += new DataGridItemEventHandler(this.grid2_OnItemDataBound);
dg.EditCommand += new DataGridCommandEventHandler(this.grid2_Edit);
dg.ItemCommand += new DataGridCommandEventHandler(this.grid2_ItemCommand);
}
}
Avatar billede dr_chaos Nybegynder
29. april 2006 - 17:41 #7
Det er lidt pseudokode men giver en basal ide om hvad du skal gøre
Avatar billede idiotbarn Nybegynder
29. april 2006 - 17:57 #8
ok...jeg kan ikke lige nå at prøve det nu...troede det var ligemeget om man bandt actions til dem i load eller databound...men eksistere grid2 på page load tidspunbktet?
Avatar billede dr_chaos Nybegynder
29. april 2006 - 18:10 #9
ja hvis den ligger i en itemtemplate i grid1
Avatar billede idiotbarn Nybegynder
30. april 2006 - 17:32 #10
ah..jeg skal lige læse hvad du skriver. Jeg har mit datagrid i edittemplate. Hvis jeg fanger godt nok edit kommandoen, men jeg kan ikke sætte den i edit-mode. Jeg har prøvet:

foreach(DataGridItem dataGridItem in grid1.Items)
{
System.Web.UI.Control olbCtl = dataGridItem.FindControl("grid2");
if (null != olbCtl && olbCtl is DataGrid)
{
  ((DataGrid)olbCtl).EditItemIndex=(int)e.Item.ItemIndex;
  Bindsomedata();
  break;
}
}
den kan godt finde den, men ingen edit mode...
Avatar billede dr_chaos Nybegynder
01. maj 2006 - 07:58 #11
det skal ikke være i edit template.
Det skal bare være i itemtemplate
Avatar billede idiotbarn Nybegynder
01. maj 2006 - 11:18 #12
Ok...ideen var at den kun skulle vises når det ydre var i edit-mode, men ellers må jeg jo bare revurdere designet hvis det ikke kan lade sig gøre?
Avatar billede dr_chaos Nybegynder
02. maj 2006 - 08:10 #13
Jeg tror måske det kan lade sig gøre men det er meget bøvlet.
Avatar billede idiotbarn Nybegynder
07. august 2006 - 23:31 #14
Fandt en anden metode...skal vi dele points?
Avatar billede dr_chaos Nybegynder
08. august 2006 - 10:10 #15
ok :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester