2012-10-01 13 views
5

Ho una configurazione piuttosto semplice qui utilizzando il nuovo ASP.Net 4.5 in una soluzione Web Forms. Utilizzo Twitter Bootstrap da quasi un anno e mi diverto molto con il tempo che mi risparmia e con la coerenza che porta in tavola. Alcuni dei loro metodi javascript sono abbastanza utili. Tuttavia, sto riscontrando problemi nell'incorporare alcune delle "nuove modalità" che sembrano essere necessarie in 4.5. Qui è la mia pagina master:ASP.Net 4.5 Twitter Bootstrap e validazione lato client

<body> 
    <form id="frmMain" runat="server"> 
     <asp:ScriptManager ID="smManager" runat="server"> 
      <Scripts> 
       <asp:ScriptReference Name="jquery" /> 
       <asp:ScriptReference Name="bootstrap" /> 
      </Scripts> 
     </asp:ScriptManager> 
... 

Ed ecco il contenuto di una pagina di prova:

<asp:Content ID="Content2" ContentPlaceHolderID="cphMain" runat="server"> 
    <asp:TextBox ID="txtTest" runat="server"></asp:TextBox> 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Problem" ControlToValidate="txtTest" CssClass="error" SetFocusOnError="True" ToolTip="Problem">*</asp:RequiredFieldValidator> 
    <asp:Button ID="btnTest" runat="server" Text="Check" CausesValidation="true" OnClick="btnTest_Click" /><br /> 
    <asp:TextBox ID="txtAnother" runat="server"></asp:TextBox> 
    <asp:Button ID="btnOk" runat="server" CausesValidation="false" Text="No Check" /> 
</asp:Content> 

Qui è il mio file Global.asax.cs per mostrare i ScriptReferences notato sopra:

protected void Application_Start(object sender, EventArgs e) { 
    GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; 

    ScriptManager.ScriptResourceMapping.AddDefinition(
     "jquery", 
     new ScriptResourceDefinition { 
      Path = "~/Scripts/jquery-1.8.2.min.js", 
      DebugPath = "~/Scripts/jquery-1.8.2.js", 
      CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js", 
      CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.8.2.js", 
      LoadSuccessExpression = "window.jQuery" 
     } 
    ); // Load jQuery 

    ValidationSettings.UnobtrusiveValidationMode = UnobtrusiveValidationMode.WebForms; 

    ScriptManager.ScriptResourceMapping.AddDefinition(
     "bootstrap", 
     new ScriptResourceDefinition { 
      Path = "~/Scripts/bootstrap.min.js", 
      DebugPath = "~/Scripts/bootstrap.js" 
     } 
    ); // Load Bootstrap 

Il lato client che verifica la prima casella di testo non viene attivato. Se faccio clic sul pulsante "Verifica", esegue un round-trip e la pagina.IsValid == false del code-behind. Va bene, ma non voglio postback quando la pagina non è valida.

ho creato un'altra pagina di prova che non ha utilizzato la mia pagina Maestro ma aveva lo stesso codice in esso come segue:

<form id="form1" runat="server"> 
    <div> 
     <asp:TextBox ID="txtTest" runat="server"></asp:TextBox> 
     <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Problem" ControlToValidate="txtTest" CssClass="error" SetFocusOnError="True" ToolTip="Problem">*</asp:RequiredFieldValidator> 
     <asp:Button ID="btnTest" runat="server" Text="Check" OnClick="btnTest_Click" /><br /> 
     <asp:TextBox ID="txtAnother" runat="server"></asp:TextBox> 
     <asp:Button ID="btnOk" runat="server" CausesValidation="false" OnClick="btnOk_Click" Text="No Check" /> 
    </div> 
</form> 

Questa pagina getta il lato client e si ferma al palo così come io voglio che .

Mi sembra che il file bootstrap.js possa odiare o interrompere la convalida js standard. Qualche suggerimento su dove posso ancora usare il bootstrap? Ho bisogno del file bootstrap.js poiché gestisce i menu a discesa. Potrei almeno usare l'interfaccia utente di jQuery per le modali ma questo non aiuta i menu a discesa.

Voglio usare la nuova tecnologia ma abbiamo sempre queste curve di apprendimento.

risposta

Problemi correlati