Skip to content

Commit 2f68862

Browse files
committed
#83 Add RowClickTarget
1 parent dd4138e commit 2f68862

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

Griddly.Mvc/GriddlySettings.cs

+10
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,11 @@ public GriddlySettings()
8585
public Func<GriddlySettings, object> InlineFilterTemplate { get; set; }
8686

8787
public Func<object, object> RowClickUrl { get; set; }
88+
89+
/// <summary>
90+
/// The anchor tag target for the <seealso cref="RowClickUrl"/>
91+
/// </summary>
92+
public string RowClickTarget { get; set; }
8893
public string RowClickModal { get; set; }
8994
public Func<object, object> RowClass { get; set; }
9095
public Func<object, object> RowHtmlAttributes { get; set; }
@@ -99,6 +104,11 @@ public virtual bool HasRowClickUrl
99104
get { return RowClickUrl != null; }
100105
}
101106

107+
public virtual bool HasRowClickTarget
108+
{
109+
get { return !string.IsNullOrWhiteSpace(RowClickTarget); }
110+
}
111+
102112
public virtual bool HasRowClass
103113
{
104114
get { return RowClass != null; }

Griddly/Scripts/griddly.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,7 @@
325325
$(this.$element).on("mouseup", "tbody.data tr td:not(:has(input))", $.proxy(function (e)
326326
{
327327
var url = $.trim($(e.target).parents("tr").data("griddly-url"));
328+
var target = $.trim($(e.target).parents("tr").data("griddly-urltarget"));
328329

329330
if (url && $(e.target).closest("a").length == 0)
330331
{
@@ -338,7 +339,7 @@
338339
}
339340
else
340341
{
341-
if (e.which == 2 || e.ctrlKey)
342+
if (e.which == 2 || e.ctrlKey || target == "_blank")
342343
window.open(url);
343344
else if (e.which != 3)
344345
window.location = url;

Griddly/Views/Shared/Griddly/Griddly.cshtml

+2
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@
9090
<input class="griddly-init-flag" type="hidden" />
9191
@:<div class="griddly griddly-init @settings.ClassName" data-role="griddly"
9292
@: @Html.AttributeNullable("data-griddly-url", !simple ? Url.Current() : null)
93+
@: @Html.AttributeNullable("data-griddly-urltarget", !simple ? settings.RowClickTarget : null)
9394
@: data-griddly-count="@Model.Total"
9495
@: @Html.AttributeNullable("data-griddly-filtermode", settings.InitialFilterMode != FilterMode.None ? settings.InitialFilterMode.ToString() : null)
9596
@: @Html.AttributeNullable("data-griddly-allowedfiltermodes", settings.AllowedFilterModes != FilterMode.None ? Json.Encode(Enum.GetValues(typeof(FilterMode)).Cast<FilterMode>().Where(x => settings.AllowedFilterModes.Value.HasFlag(x) && x != FilterMode.Both && x != FilterMode.None).Select(x => x.ToString())) : null)
@@ -191,6 +192,7 @@
191192
@foreach (object row in Model.Data)
192193
{
193194
<tr @Html.AttributeIf("data-griddly-url", settings.RowClickUrl != null, @<text> @settings.RowClickUrl(row) </text> )
195+
@Html.AttributeIf("data-griddly-urltarget", settings.RowClickTarget != null, @<text> @settings.RowClickTarget </text>)
194196
@Html.AttributeIf("class", settings.RowClass != null, @<text> @settings.RowClass(row) </text> )
195197
@Html.AttributeNullable("data-id", TryEval(row, settings.IdProperty))
196198
@foreach (var x in settings.RowIds)

0 commit comments

Comments
 (0)