2009-09-19 8 views
1

Gratter ma tête à ce sujet. Dans le HTML rendu pour le code ci-dessous, le btnEdit (dans le GridView) a le Javascript correct dans le paramètre onclick (onclick = "javascript: WebForm_DoPostBack ..."). Le btnAddNew n'a aucun gestionnaire onclick. Pourquoi? Il n'y a pas d'erreur de compilation ou de l'exécution, et la page utilise une page principale qui a la balise form ..PostbackUrl et le paramètre de chaîne de requête

<ContentTemplate> 
<asp:ImageButton ID="btnAddNew" SkinID="btnAddNew" runat="server" 
    PostBackUrl='<%# "EditUser.aspx?action="+Constants.actionAdd %>' /> 
<asp:GridView ID="UserGridView" 
     runat="server" 
     DataKeyNames="UserId" 
     > 
     <Columns> 
     <asp:TemplateField 
       <ItemTemplate> 
        <asp:ImageButton id="btnEdit" SkinID="btnEdit" runat="server" 
        PostBackUrl='<%# Eval("UserId", "EditUser.aspx? 
        action="+Constants.actionEdit+"&uid={0}") %>' /> 
       </ItemTemplate> 
     </asp:TemplateField>           
     </Columns>   
</asp:GridView> 

+0

Vérifiez si le PostBackUrl est intact dans la page restituée. Si tel est le cas, le contrôle asp: ImageButton n'a pas de propriété PostBackUrl. –

Répondre

4

il semble que vous n'avez pas besoin balise liaison de données (<% #) pour le bouton btnAddNew. Vous pouvez donc affecter cette propriété côté serveur:

btnAddNew.PostBackUrl = "EditUser.aspx?action=" + Constants.actionAdd; 
+0

Merci, bien sûr. Non seulement je n'ai pas besoin de la balise d'évaluateur de liaison de données, mais je ne peux pas l'utiliser sur un élément qui n'est pas lié à des données. Duh! – cdonner

Questions connexes