Search code examples
asp.net-mvc-3razorwebgrid

MVC 3 Webgrid make entire row clickable


I am using webgrid in my razor view in MVC 3. Below is how my webGrid looks, I want to make the entire row clickable and on click pass values to the javascript method also.

I am able to achieve calling my javascript method on text of all columns. I want the same to happen for click of anywhere on the entire row.

Please guide me on this. Thanks

           @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"),

            ))      

         }

Solution

  • You have to use JQuery to add row click functionality

    Add htmlAttributes: new { id="MainTable" } in your 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>