[3.5] Server Control Event handling
Salut,
Je bosse sur un server control qui permet de gérer plusieurs adresses pour une personne donnée.
Il est composé d'une liste de choix de l'adresse et d'une série de champs.
J'ai isolé mon problème, je n'arrive pas à gérer un événement.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
protected override void CreateChildControls()
{
BuildDivTitle(this.Title, this, this.TitleClass, this.Required);
HtmlGenericControl divContainer = new HtmlGenericControl("div");
HtmlTable oTbl = new HtmlTable();
HtmlTableRow oTR;
HtmlTableCell oTD;
ListBox oSelect = new ListBox();
oSelect.ID = "lbxAddressSelector";
oSelect.AutoPostBack = true;
oSelect.EnableViewState = true;
oSelect.SelectedIndexChanged += new EventHandler(lbxAddressSelector_SelectedIndexChanged);
ListItem oCurrentItem = new ListItem();
oCurrentItem.Value = "-1";
oCurrentItem.Text = "[New one]";
oCurrentItem.Attributes.Add("style", "color:#0000FF");
oSelect.Items.Add(oCurrentItem);
foreach (CL_Address_Base oCurrAddress in Addresses)
{
var text =
from AddresseType in AddressesTypes
where AddresseType.Key == oCurrAddress.AddressTypeId
select AddresseType.Value;
oCurrentItem = new ListItem();
oCurrentItem.Value = oCurrAddress.AddressUserJoinId.ToString();
oCurrentItem.Text = (string)(text.ToArray<string>())[0];
oSelect.Items.Add(oCurrentItem);
oTD = new HtmlTableCell();
oTR = new HtmlTableRow();
oTD.Controls.Add(oSelect);
oTR.Cells.Add(oTD);
oTbl.Rows.Add(oTR);
}
divContainer.Controls.Add(oTbl);
Label lblTest = new Label();
lblTest.Text = "Before click";
lblTest.ID = "lblTest";
divContainer.Controls.Add(lblTest);
this.Controls.Add(divContainer);
base.CreateChildControls();
} |
J'ai aussi créé un petit event handler :
Code:
1 2 3 4 5 6 7 8 9
|
protected void lbxAddressSelector_SelectedIndexChanged(object sender, EventArgs e)
{
Label lbl = (Label)Page.FindControl("lblTest");
if (lbl != null)
{
lbl.Text = "After click";
}
} |
Comme vous pouvez le voir, j'ai activé l'Auto post back. Ca compile bien mais à l'exécution, il semble que l'événement lbxAddressSelector_SelectedIndexChanged ne se produise jamais.
Qu'aurais-je oublié ...:roll:
D'avance merci pour votre aide,
Laurent
Au passage, je cherche depuis longtemps de la doc pour créer les interfaces en mode design mais sans succès, alors, si vous savez où je peux trouver de la doc là dessus, je suis preneur.