332 messaggi dal 05 agosto 2005
Nulla.

Ho scaricato il codice e ho lancialo la webform. A parte qualche messagio "Unknow error" il focus viene fatto in Chrome ma non in IE.
Ho importato la reference Microsoft.Web.Atlas nel mio project, aggiunto la

<%@ Register Assembly="Microsoft.Web.Atlas" Namespace="Microsoft.Web.UI" TagPrefix="cc1" %> nella webform,

aggiunto i nuovi ScriptManager e updatepanel ma non funziona.
Focus rimane nella barra indirizzo in Chrome e da nessuna parte in IE
332 messaggi dal 05 agosto 2005
Dimenticavo,

La mia Master page ha il sottostante Page_Load event:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim UN_Index_string As Integer = InStrRev(Session("User"), "\")
        Dim UN_Len_String As Integer = Len(Session("User"))

        Dim AD_Index_string As Integer = InStrRev(Session("NTAccount_Group"), "\")
        Dim AD_Len_String As Integer = Len(Session("NTAccount_Group"))

        Dim vADName As String = Right(Session("User"), UN_Len_String - UN_Index_string)

        'Dim pc As PrincipalContext = New PrincipalContext(ContextType.Domain, "PIPPOPLUTO")
        'Dim up As UserPrincipal = UserPrincipal.FindByIdentity(pc, vADName)


    End Sub


Mi chiedo se sia questo che fa perdere il focus nella webform!!!!
84 messaggi dal 30 novembre 2004
Prova a settare il focus nell unload della webform
332 messaggi dal 05 agosto 2005
System.InvalidOperationException: 'SetFocus can only be called before and during PreRender.'


L'unico modo per far funzionare il focus e quello di rimuovere:

<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
</div>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>

<ajaxToolkit:TextBoxWatermarkExtender ID="TextBox1_TBWE" runat="server" BehaviorID="TextBox1_TBWE" TargetControlID="TB_Barcode" WatermarkCssClass="Watermark" WatermarkText="Scan the barcode" />


</ContentTemplate>
</asp:UpdatePanel>



e di aggiungere:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Page.Form.DefaultFocus = TB_Barcode.ClientID

End Sub


e


Public Sub MySetFocus(ByRef TBox As TextBox)
Dim focusJS As String =
"setTimeout(""$('" & TB_Barcode.ClientID & "').focus(); "", 100);"
ClientScript.RegisterStartupScript(Me.GetType, "focusJS", focusJS, True)
End Sub
332 messaggi dal 05 agosto 2005
Trovata una soluzione finalmente:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        ScriptManager.RegisterStartupScript(Me, Me.GetType(), "Focus", String.Format("window.setTimeout('$get(""{0}"").focus()', 300);", TB_Barcode.ClientID), True)

    End Sub


Grazie per l'aiuto mexico77 e spero di aver aiutato altri con il mio stesso rompicapo.

Marco

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.