28. april 2006 - 18:16Der 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:
//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?
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); } }
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?
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...
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.