2014-09-02 5 views
0

У меня есть небольшое приложение в MVC4. Он имеет сетку, и каждая строка имеет две вещи. 1) ID 2) КнопкаПередача параметров на javascript кнопку click handler

Когда пользователь нажимает на кнопку, мне нужно вызвать идентификатор передачи функции javascript в качестве параметра. Как это сделать в MVC. Я могу по-настоящему сделать тонкий в случае. Пожалуйста, помогите

Ниже мой код.

@model IEnumerable<Models.Asset> 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

<p> 
    @Html.ActionLink("Create New", "Create") 
</p> 
<table> 
    <tr> 
     <th> 
      Id 
     </th> 

     <th> 
      Show 
     </th> 
    </tr> 

@foreach (var item in Model) { 
    <tr> 
     <td width="80"> 
      @item.Id 
     </td> 


     <td> 
      <button class="btnView" onclick="myfunction(@item.someProperty)">Show</button> 
     ///How can I pass @item.someProperty as an parameter to click handler? 
     </td>    
    </tr>  
} 
</table> 


<div id="imageDisplay"> 

    <p> 

    </p> 
</div> 

@section scripts{ 
    <script type="text/javascript"> 
     $(function() { 
      $('#imageDisplay').dialog({ 
       autoOpen: false 
      }); 

      $('.btnView').click(function() { 
       alert('ok'); 
       //How can I get id as an parameter to this function? 
      });    

     }); 

    </script> 
} 

ответ

3

Во-первых просто удалить onclick обработчик с помощью кнопки (Вы не нуждаетесь в этом, как вы регулируете click событие с JQuery)

Попробуйте это:

HTML: -

<td> 
    <button class="btnView" data-prop="@item.someProperty">Show</button> 
</td> 

JQUERY: -

$('.btnView').click(function() { 
    var prop = $(this).attr('data-prop'); 
    alert(prop); 
}); 

ИЛИ

$('.btnView').click(function() { 
    var prop = $(this).data('prop'); 
    alert(prop); 
}); 

ИЛИ (если вы не хотите, чтобы добавить data-prop на кнопку, то вы можете следовать ниже ответ, просто поймать 'Id', который есть в td из ваших table)

$('.btnView').click(function() { 
    var id = $(this).closest('tr').find('td').eq(0).text(); 
    alert(id); 
}); 
+0

Я бы с .data («проп») вместо .attr («данных реквизита»), хотя оба должны работать – Jason

+0

@ moo2u2. ..yes..yes вы так и сделаете ... изменили ответ для вас ... –

0

Удалите обработчик onclick с помощью кнопки (у вас нет функции под названием myfunction)

Поскольку у вас уже есть е ID значение в предыдущей колонке, вы можете получить его с помощью

$('.btnView').click(function() { 
    var id = $(this).closest('tr').children('td').eq(0).text(); 
}); 
Смежные вопросы