2012-05-04 16 views
6

Używam webgrid w moim widoku maszynki do golenia w MVC 3. Poniżej przedstawiam wygląd mojego webgridu, chcę, aby cały wiersz był klikalny, a także wartości po kliknięciu do metody javascript.MVC 3 Webgrid powoduje, że cały wiersz jest klikalny

Jestem w stanie uzyskać wywołanie mojej metody javascript na tekst wszystkich kolumn. Chcę, aby to samo stało się z kliknięciem dowolnego miejsca w całym wierszu.

Proszę mnie o tym poprowadzić. Dzięki

  @grid.GetHtml(

      columns: grid.Columns(

      grid.Column("CompanyName", format: @<text><a href="javascript:SubmitValues('@item.Col1','@item.Col2','@item.Col3');">@item.CompanyName</a></text>, header: "ABC"), 

      grid.Column("CompanyAddress", format: @<text><a href="javascript:SubmitValues('@item.Col1','@item.Col2','@item.Col3');">@item.CompanyName</a></text>, header: "DEF"), 

      ))  

     } 
+0

LoL! otrzymał TumbleWeed za to: zadał pytanie bez głosów, bez odpowiedzi, bez komentarzy i niskich wyświetleń przez tydzień. Nadzieja, że ​​teraz odpowiedzi zaczną się wlewać! : P – Yasser

Odpowiedz

3

Musisz użyć jQuery dodać rzędzie kliknij funkcjonalności potrzebne

Dodaj htmlAttributes: nowy {id = "MainTable"} w WebGrid.

<script type="text/javascript"> 
    $(function() { 
     var tr = $('#MainTable').find('tr'); 
     tr.bind('click', function (event) { 
      var values = ''; 
      var tds = $(this).find('td'); 


      $.each(tds, function (index, item) { 
       values = values + 'td' + (index + 1) + ':' + item.innerHTML + '<br/>'; 
      }); 
      alert(values); 


     }); 
    }); 


</script> 
+0

i jak przekazać wartości "@ item.Col1", "@ item.Col2", "@ item.Col" do mojej funkcji javascript? – Yasser

+0

Już przekazujesz parametr. Powyższy kod podświetli tylko wiersz. Reszta twój kod zrobi –

2

Zrobiłem to w moim projekcie dodając klasę style: "click_able" na konkretnej kolumnie.

grid.Column("CompanyName", style: "click_able", format: @<text><a href="javascript:SubmitValues('@item.Col1','@item.Col2','@item.Col3');">@item.CompanyName</a></text>, header: "ABC"), 

a następnie dodaj funkcję podobną do.

<script type="text/javascript"> 
$(".click_able").click(function() { 
    // Do something 
}); 

To działa dobrze w moim przypadku.

Powiązane problemy