2013-03-15 1 views
2

Mon * .aspx page (page principale):événement Vue partielle cliquable pas tirer

function getEmployeeHours(employeeId,year,month) { 
$('#clocked-details').load('/Employees/GetEmployeeClockedHours/',{ 'employeeId': employeeId,'year': year,'month': month }); 
    }; 

Mon vue partielle * .ascx:

<td> 
    <button id="btnSave" type="button" class="actionButton"> 
    Save</button> 
    </td> 

Comme ci-dessus extrait de code que je dois accsess vue partielle btnSauvegarde de la vue principale pour déclencher un événement de clic.

J'ai écrit le code ci-dessous à l'intérieur de la vue principale.

$('#btnSave').off('click').on('click', function() { 

     var yearValue = $("#year").val(); 
     var monthValue = $("#month").val(); 

     $.ajax({ 
      url: "/Employees/UpdateEmployeeClockedHoursByProvider", 
      type: 'POST', 
      cache: false, 
      data: { employeeId: employeeId, year: yearValue, month: monthValue }, 
      success: function (result) { 

      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
       alert(xhr.status); 
       alert(thrownError); 
      } 
     }); 

     return false; 
    }); 

Mais il n'a pas fire.Here J'utilise charge méthode jquery pour charger de manière asynchrone mon point de vue partielle.

Donc, ma question est de savoir comment est-ce que je devrais déclencher un clic sur un événement de vue partielle?

+0

L'événement de clic de bouton est-il dans la vue partielle ou dans la vue principale? –

+0

@SivaGopal J'ai mis cet événement à deux endroits.Mais pas de chance? Une idée? – Sampath

+0

Avez-vous essayé ("#btnSave"). Live ("click") événement de jquery tout en gardant le script dans la vue principale? –

Répondre

1

Depuis le usercontrol containging le bouton est en cours de chargement dynamique, vous pouvez utiliser ("#btnSave").live("click"){...} cas de jquery tout en gardant le script dans la vue principale, qui peut garder une trace des contrôles ajoutés au DOM à l'avenir. Ainsi, chaque fois qu'un contrôle correspondant au sélecteur spécifié pour "live (..)" apparaît, l'événement est automatiquement câblé.

J'espère que cela vous aidera.

+0

Merci pour la réponse. – Sampath

6

Étant donné que votre code HTML est chargé dynamiquement dans la page, vous devrez donner plus de contexte à votre requête DOM.

Essayez ceci.

$(document).on('click', '#bntSave', function(){ 
    //do stuff 
}); 
Questions connexes