Tags:
asp.net
Hej
Jeg har et datagrid (framework 1.1) i min asp. net side. Da min code behind er ved at være godt overfyldt ville jeg gerne håndtere alle events relateret til dettte datagrid i en klasse for sig selv. Ved at give klassens constructor datagrided selv of så definere passende delegerede samt event handlere her. Det virker fint nok for alle knapper i mit grid (lavet via grid.ItemCommand). I en template column har jeg fx en teksboks. Jeg går ud fra at jeg kan definere denne tekstboks events ved at tilgå teksboksen gennem datagrid??? Har prøvet grid.findcontrol("tekstboks1") og får <undefined> og ser man i "items" property til gridet er der 0 items???
Ved I hvordan man tilgår en kontrol i en template column???
Jeg har defineret template column og indhold af denne manuelt med <asp:.. tags. Kan det give problemer??
3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Det kan løses på følgende måde. I klassen der håndterer event til datagrid giv da grid selv i constructor. Brug DataGrid item created event. I handler til denne event tildeles events til de enkelte komponenter...
// Constructor to the DataGridEventHandlers class
public DataGridEventHandlers(System.Web.UI.WebControls.DataGrid grid, GridDataSource gridData)
{
grid.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid_ItemComm
grid.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid_ItemCreated);
}
private void DataGrid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
TextBox TextBoxInGrid = (TextBox)e.Item.FindControl("TextBox1");
TextBoxInGrid.TextChanged += new EventHandler(this.TextInput);
}
etc..
0
0