2012-04-23 12 views
5

Sto utilizzando un controllo utente .ascx in cui inserisco i dati dei dipendenti insieme all'immagine dei dipendenti. mentre clicco su immagine dipendente voglio visualizzare una finestra di dialogo in cui voglio avere un campo di testo e una casella di testo per l'input da parte dell'utente. L'evento Click sta funzionando bene ma con il dialogo mi dà l'errore "Errore di runtime di Microsoft JScript: l'oggetto non supporta la proprietà o il metodo 'dialog'". Potrebbe piacere a chiunque mi aiuti a popolare una finestra di dialogo con un campo di testo e una casella di testo. Sono davvero nuovo alla JQUERY e sto lottando per farlo funzionare.Errore di runtime di Microsoft JScript: L'oggetto non supporta la proprietà o il metodo 'dialog'

Nel seguente frammento di codice ho aggiunto un codice di dialogo da uno degli esempi che ho trovato online.

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="OpenAccessDataProvider,a4a794260c0b4440b466f75d11146db8.ascx.cs" Inherits="SitefinityWebApp.SfCtrlPresentation.OpenAccessDataProvider_a4a794260c0b4440b466f75d11146db8" %> 
<%@ Register TagPrefix="sf" Namespace="Telerik.Sitefinity.Web.UI.PublicControls.BrowseAndEdit" Assembly="Telerik.Sitefinity" %> 
<%@ Register TagPrefix="sf" Namespace="Telerik.Sitefinity.Web.UI.ContentUI" Assembly="Telerik.Sitefinity" %> 
<%@ Register TagPrefix="sf" Namespace="Telerik.Sitefinity.Web.UI.Comments" Assembly="Telerik.Sitefinity" %> 
<%@ Register TagPrefix="sf" Namespace="Telerik.Sitefinity.Web.UI.Fields" Assembly="Telerik.Sitefinity" %> 
<%@ Register TagPrefix="sf" Namespace="Telerik.Sitefinity.Web.UI" Assembly="Telerik.Sitefinity" %> 
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> 

<telerik:RadListView ID="dynamicContentListView" ItemPlaceholderID="ItemsContainer" runat="server" EnableEmbeddedSkins="false" EnableEmbeddedBaseStylesheet="false"> 
    <LayoutTemplate> 
     <ul class="sfitemsList sfitemsListTitleDateTmb"> 
      <asp:PlaceHolder ID="ItemsContainer" runat="server" /> 
     </ul> 
    </LayoutTemplate> 

     <ItemTemplate> 
     <li class="sfitem sfClearfix"> 
      <h2 class="sfitemTitle"> 
       <sf:DetailsViewHyperLink ID="DetailsViewHyperLink" TextDataField="Title" runat="server" /> 
      </h2> 
      <sf:AssetsField ID="AssetsField1" runat="server" DataFieldName="Picture" /> 
      <sf:SitefinityLabel ID="SitefinityLabel1" runat="server" Text='<%# Eval("Designation")%>' WrapperTagName="div" HideIfNoText="true" CssClass="sfitemShortTxt" />   
      <sf:SitefinityLabel ID="SitefinityLabel2" runat="server" Text='<%# Eval("CompanyName")%>' WrapperTagName="div" HideIfNoText="true" CssClass="sfitemShortTxt" /> 
      <sf:AssetsField ID="AssetsField2" runat="server" DataFieldName="Documents"/> 
     </li> 
    </ItemTemplate> 
</telerik:RadListView> 

<sf:Pager id="pager" runat="server"></sf:Pager> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".sfClearfix .sfimageWrp img").click(function() { 

//   $(document).ready(function() { 
       var $dialog = $('<div></div>') 
     .html('This dialog will show every time!') 
     .dialog({ 
      autoOpen: false, 
      title: 'Basic Dialog' 
     }); 

       $('#opener').click(function() { 
        $dialog.dialog('open'); 
        // prevent the default action, e.g., following a link 
        return false; 
       }); 
//   }); 

      //alert("HEY THERE " + $(this).attr("src")); 
     }); 
    }); 
</script> 

Regards. 
+0

sembra che jquery ui.js non venga caricato anche tenendo a mente che devi includere jquery.js prima di includere qualsiasi altra libreria – Rafay

+0

Grazie per l'avviso 3nigma. So che jquery.js non è incluso nel mio codice ma come ho detto sto lavorando con un controllo utente (file .ascx) dove non so se sono autorizzato ad aggiungere script jquery.js mentre aggiungiamo qualsiasi script nell'intestazione di pagine .aspx mentre nei controlli utente non ho alcuna intestazione. qualche consiglio per quello? Ho provato ad aggiungere script direttamente e sto ancora finendo con lo stesso errore "Errore di runtime di Microsoft JScript: L'oggetto non supporta la proprietà o il metodo 'dialog'" –

+0

È una sorta di fastidioso conflitto con le librerie Telerik. – Jagd

risposta

6

Ha funzionato ragazzi. Appena aggiunto un div che è per la finestra di dialogo e che dal clic sull'immagine chiamato semplicemente div. Inoltre, ha aggiunto un JQuery.noConflict(); per prevenire eventuali conflitti tra le librerie Sitefinity e JQuery. Di seguito è il frammento di codice

<div class="dialogTest"> <br /> 
<br /> 
Please enter your email address: <input type="text" name="emailAddress" style="width:300px;" /><br /><br /> 

<asp:TextBox ID="txtBox" runat="server"></asp:TextBox> <br/> 
<asp:Button ID="Button1" runat="server" Text="Button" CausesValidation="False" 
     onclick="Button1_Click" /> 
</div> 

<script type="text/javascript"> 
$j = jQuery.noConflict(); 
$j(document).ready(function() { 
    $j(".sfClearfix .sfimageWrp img").click(function() { 
     $j(".dialogTest").addClass("open"); 
     //return $j(this).attr("src"); 
    }); 
}); 
</script> 
+0

Congratulazioni per la correzione! Quando sei in grado, assicurati di contrassegnare la tua risposta come "accettata" in modo che altri possano imparare dal tuo successo. Cheers ~ –

+1

buona soluzione. grazie per la condivisione. – RachitSharma

+0

Aveva qualche conflitto tra telerik e jquery e quindi la finestra di dialogo di jquery ui avrebbe generato un errore. $ j = jQuery.noConflict(); ha funzionato per me – desiguy

2

Nel mio caso, i file jQuery non vengono caricati correttamente. Quindi, quello che ho fatto sono: 1) Aperta la pagina su Chrome 2) Selezionati gli strumenti di sviluppo dal menu o Ctrl + Maiusc + I 3) Cliccati sulla rete per vedere tutto.

0

Ho avuto lo stesso problema. problema era che avevo caricato 2 file Jquery. jquery-1.8.3.js e jquery-1.4.1.js. quindi c'era un conflitto. dopo aver rimosso il file jquery-1.4.1.js. ha funzionato senza intoppi.