2010-03-12 7 views
0

Je suis un peu confus quant aux raisons pour lesquelles asp.net ne restitue pas une liste déroulante avec la propriété autopostback définie sur true lors de l'utilisation de la méthode RenderControl.La méthode RenderControl d'Asp.net ne restitue pas l'autopostback pour la liste déroulante

par exemple

Dim sw As New IO.StringWriter 
    Dim tw As New HtmlTextWriter(sw) 

    Dim table As New Table 

    table.Rows.Add(New TableRow) 
    Dim tr As TableRow = table.Rows(0) 

    tr.Cells.Add(New TableCell) 
    Dim tc As TableCell = tr.Cells(0) 

    Dim ddlMyValues As New DropDownList 
    ddlMyValues.ID = "ddl1" 

    ddlMyValues.Items.Add("Test1") 
    ddlMyValues.Items.Add("Test2") 
    ddlMyValues.Items.Add("Test3") 
    ddlMyValues.AutoPostBack = True 

    tc.Controls.Add(ddlMyValues) 
    table.RenderControl(tw) 

    Debug.WriteLine(sw.ToString) 

ma sortie rend la liste déroulante sans onchange = "javascript: setTimeout ('__ doPostBack (\ DDL1 \', \ '\') », 0)" qui est généré par asp.net lors de l'utilisation de la liste déroulante normalement.

Y a-t-il un problème?

Répondre

0

Juste une supposition, mais c'est peut-être parce que ce n'est pas dans un élément form. Pourquoi voudriez-vous le faire de toute façon?

+0

Salut Ian, je travaille avec un contrôle créé par un autre développeur, et il passe par cette routine pour créer une rangée de contrôles. J'étends son contrôle en ajoutant une validation aux drop downs que je ne peux pas réaliser! – Tanya

+0

Sonne comme un gâchis terrible. Si vous n'avez pas besoin de créer dynamiquement une sortie HTML, pourquoi ne pas simplement placer les contrôles dans un usercontrol plutôt que d'utiliser HTMLWriter? –

Questions connexes