Event i template column

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
Sorter efter stemmer Sorter efter dato
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..












t