2010-09-01 16 views
16

Ho una pagina master con un elemento modulo e l'attributo defaultbutton impostato su ImageButton sul lato server. In una delle mie pagine voglio "sovrascrivere" l'attributo defaultbutton di masterpage impostando Defaults Button Forms nell'evento Page_Load.Pagina master ASP.NET DefaultButton override

cioè A pagina mater:

<form id="form1" runat="server" defaultbutton="btnSearch">....</from> 

In caso pagina di Page_Load che "override" l'attributo pagina master:

this.Form.DefaultButton = this.ibRecalc.ID; 

esso errori con:

Il DefaultButton di 'form1' deve essere l'ID di un controllo di tipo IButtonControl

Sto usando i bottoni di immagine che implementa IButtonControl

Tutte le idee su quello che potrebbe essere sbagliato o di un modo diverso di affrontare il problema?

Grazie

+0

Che tipo è ibRecalc? Implementa l'interfaccia specificata? – Tahbaza

+0

@Tahbaza: ibRecalc è un controllo ImageButton di ASP.NET che implementa IButtonControl –

risposta

41

Usa UniqueId. Dal momento che è possibile avere più controlli server con lo stesso ID server, cioè, in un GridView, il framework ha bisogno dell'ID univoco da abbinare a.

this.Form.DefaultButton = this.ibRecalc.UniqueID; 
+0

perfetto - grazie. –

1

Si potrebbe provare a utilizzare il "DefaultButton" proprietà di un pannello ...

Posizionare il tasto o la pagina intera o div in asp: Panel

// iniziare pannello

asp: Panel ID = runat "pnlOpsCallSummay" = "server" DefaultButton = "btnSearch"

............

// I controlli della vostra richiesta

..........

asp: Button ID = "btnSearch" runat = Testo "server" = "Cerca"

chiudere la pannel

Non c'è bisogno di Ridefinire il pulsante pagina master

+0

Questo è interessante, sarete in grado di avere pulsanti predefiniti per più pannelli all'interno di una pagina. Bello. –

0

Se si sposta il pannello interno del modello di accesso: -

<asp:login id="Login2" runat="server" loginbuttontype="Image"> 
<layouttemplate> 
    <asp:`enter code here`panel id="Panel1" runat="\ 
    server"defaultbutton="LoginImageButton"> 
    </asp:Panel> 
</LayoutTemplate> 
</asp:Login> 

Quindi funzionerà senza codice. È possibile impostare loginbuttontype = "Immagine" o Link o pulsante in base alle proprie esigenze.

Problemi correlati