javascript - make row clickable after refresh in mvc -
i want make row clickable after refresh. have in view:
@foreach (var item in model) { <tr class="@(item.id == (int)(session["id"] ?? 0) ? ".tr.sfs-selected .table.sfs-selectable tbody .datatable sfs-selected .datatable sfs-selectable .table-responsive" : string.empty)" onclick="'<tr>'" data-url="@url.action("index", new routevaluedictionary { { "id", item.id } })"> <td> @html.displayfor(modelitem => item.id) </td> <td> @html.displayfor(modelitem => item.name) </td> <td> @html.displayfor(modelitem => item.isenabled) </td> <td> </tr> }
i have jquery:
$("table.sfs-selectable tbody").on("click", "tr", function (ev) { var $row = $("tr.sfs-selected").each(function(){ selectrow($row, !$row.hasclass("sfs-selected")); }); });
however row not clicked after refresh.
thank you
the view:
<table class="table table-striped table-bordered table-hover datatable sfs-selectable sfs-col1-right-aligned"> <thead> <tr> <th> @html.routelink(html.displaynamefor(model => firstitem.id).tostring(), "sort-product", new { sortcolumn = "id", sortorder = (viewbag.sortcolumn == "id" && viewbag.sortorder != "desc") ? "desc" : "", searchstring = viewbag.searchstring, filter = viewbag.filter }) @viewhelper.getsortindicator("id", viewbag.sortcolumn, viewbag.sortorder) </th> <th> @html.routelink(html.displaynamefor(model => firstitem.name).tostring(), "sort-product", new { sortcolumn = "name", sortorder = (viewbag.sortcolumn == "name" && viewbag.sortorder != "desc") ? "desc" : "", searchstring = viewbag.searchstring, filter = viewbag.filter }) @viewhelper.getsortindicator("name", viewbag.sortcolumn, viewbag.sortorder) </th> <th> @html.routelink(html.displaynamefor(model => firstitem.isenabled).tostring(), "sort-product", new { sortcolumn = "enabled", sortorder = (viewbag.sortcolumn == "enabled" && viewbag.sortorder != "desc") ? "desc" : "", searchstring = viewbag.searchstring, filter = viewbag.filter }) @viewhelper.getsortindicator("enabled", viewbag.sortcolumn, viewbag.sortorder) </th> <th> @html.routelink(html.displaynamefor(model => firstitem.formname).tostring(), "sort-product", new { sortcolumn = "formname", sortorder = (viewbag.sortcolumn == "formname" && viewbag.sortorder != "desc") ? "desc" : "", searchstring = viewbag.searchstring, filter = viewbag.filter }) @viewhelper.getsortindicator("formname", viewbag.sortcolumn, viewbag.sortorder) </th> <th> @html.routelink(html.displaynamefor(model => firstitem.templatename).tostring(), "sort-product", new { sortcolumn = "design", sortorder = (viewbag.sortcolumn == "design" && viewbag.sortorder != "desc") ? "desc" : "", searchstring = viewbag.searchstring, filter = viewbag.filter }) @viewhelper.getsortindicator("design", viewbag.sortcolumn, viewbag.sortorder) </th> <th> @html.routelink(resources.entity.product.publicurl, "sort-product", new { sortcolumn = "urlname", sortorder = (viewbag.sortcolumn == "urlname" && viewbag.sortorder != "desc") ? "desc" : "", searchstring = viewbag.searchstring, filter = viewbag.filter }) @viewhelper.getsortindicator("urlname", viewbag.sortcolumn, viewbag.sortorder) </th> <th> @html.displaynamefor(model => firstitem.submittedforms) </th> <th> @html.routelink(html.displaynamefor(model => firstitem.modificationdate).tostring(), "sort-product", new { sortcolumn = "modified", sortorder = (viewbag.sortcolumn == "modified" && viewbag.sortorder != "desc") ? "desc" : "", searchstring = viewbag.searchstring }) @viewhelper.getsortindicator("modified", viewbag.sortcolumn, viewbag.sortorder) </th> <th class="hidden"></th> </tr> </thead> <tbody> @foreach (var item in model) { <tr class="@(item.id == (int)(session["id"] ?? 0) ? ".tr.sfs-selected .table.sfs-selectable tbody .datatable sfs-selected .datatable sfs-selectable .table-responsive" : string.empty)" data-url="@url.action("index", new routevaluedictionary { { "id", item.id } })"> <td> @html.displayfor(modelitem => item.id) </td> <td> @html.displayfor(modelitem => item.name) </td> <td> @html.displayfor(modelitem => item.isenabled) </td> <td> @{ bool viewlink = item.isenabled; if (!string.isnullorempty(item.formname)) { var form = item.formlibraryentry; if (form == null) { viewlink = false; @html.displayfor(modelitem => item.formname) <em>(@resources.entity.environment.removed)</em> } else { @html.displayfor(modelitem => form.name) <a href="@url.action("details", "formlibrary", new { id = item.formname })"><i class="fa fa-fw fa-external-link-square text-info"></i></a> } } } </td> <td> @{ if (!string.isnullorempty(item.templatename)) { var template = item.templatelibraryentry; if (template == null) { viewlink = false; @html.displayfor(modelitem => item.templatename) <em>(@resources.entity.environment.removed)</em> } else { @html.displayfor(modelitem => template.name) <a href="@url.action("details", "designtemplate", new { id = item.templatename })"><i class="fa fa-fw fa-external-link-square text-info"></i></a> } } } </td> <td> @if (!string.isnullorempty(item.urlname)) { var defaultproducturi = customerconfig.tohosturi(request.url.scheme, defaulthostheader, request.url.port, (isproduction ? "" : "test/") + item.urlname); if (viewlink) { @item.urlname <a href="@defaultproducturi.tostring()" title="@resources.entity.product.viewproduct" target="_blank"><i class="fa fa-fw fa-external-link-square text-info"></i></a> } else { @item.urlname } } </td> <td> @{ int cnt = item.submittedforms.where(prod => prod.order.isproduction == isproduction).count(); @(cnt.tostring() + " ") if (cnt > 0) { <a href="@url.action("index", "submittedforms", new { filter = item.id })"> <i class="fa fa-fw fa-external-link-square text-info"></i> </a> } } </td> <td class="text-nowrap"> @item.modificationdate.tostring("g") </td> <td class="hidden"> <span> @if (!string.isnullorempty(item.urlname) && !string.isnullorempty(item.formname)) { @html.routelink(resources.action.navigation.preview, "productpreview", new { producturl = item.urlname, customerschema = custschema }, new { target = "_blank" }) } else { @(resources.action.navigation.preview) } | @html.actionlink(resources.action.navigation.details, "details", new { id = item.id }) | @html.actionlink(resources.action.navigation.edit, "edit", new { id = item.id }) </span> </td> </tr> } </tbody> </table>
so have tbody in it. problem have double click on row
this selectrow function:
function selectrow($row, dosel) { var $section = $row.closest("section"); if (dosel) { $section.find("tr.sfs-selected").removeclass("sfs-selected"); $row.addclass("sfs-selected"); $section.find(".sfs-actionbutton").each(function (index) { var $btn = $(this); $btn.addclass("disabled"); var href = $row.find("td:last a").filter(function () { return $(this).text().trim() == $btn.text().trim(); }).attr("href"); if (href) { $btn.attr("href", href).removeclass("disabled"); if ($btn.parent().is(".btn-group")) { $btn.parent().children("a").removeclass("disabled"); $btn.attr("data-href", href + "/"); $btn.attr("href", href + "/" + $(".sfs-select-preview-template .active a").attr("href")); } } }); } else { $row.removeclass("sfs-selected"); $section.find(".sfs-actionbutton").addclass("disabled"); } }
you have wrong selector, gess should this:
var $row = $("tr.sfs-selected").each(function(){ selectrow( $(this), $(this).hasclass("sfs-selected")); });
the point in each()
method can 1 of collection element this
keyword.
Comments
Post a Comment