Skip to content

Commit 93b2103

Browse files
Merge pull request #84 from nickdevore/master
Add RowClickTarget
2 parents 139b601 + 2f68862 commit 93b2103

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
@@ -88,6 +88,11 @@ public GriddlySettings()
8888
public Func<GriddlySettings, object> InlineFilterTemplate { get; set; }
8989

9090
public Func<object, object> RowClickUrl { get; set; }
91+
92+
/// <summary>
93+
/// The anchor tag target for the <seealso cref="RowClickUrl"/>
94+
/// </summary>
95+
public string RowClickTarget { get; set; }
9196
public string RowClickModal { get; set; }
9297
public Func<object, object> RowClass { get; set; }
9398
public Func<object, object> RowHtmlAttributes { get; set; }
@@ -102,6 +107,11 @@ public virtual bool HasRowClickUrl
102107
get { return RowClickUrl != null; }
103108
}
104109

110+
public virtual bool HasRowClickTarget
111+
{
112+
get { return !string.IsNullOrWhiteSpace(RowClickTarget); }
113+
}
114+
105115
public virtual bool HasRowClass
106116
{
107117
get { return RowClass != null; }

Griddly/Scripts/griddly.js

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

331332
if (url && $(e.target).closest("a").length == 0)
332333
{
@@ -340,7 +341,7 @@
340341
}
341342
else
342343
{
343-
if (e.which == 2 || e.ctrlKey)
344+
if (e.which == 2 || e.ctrlKey || target == "_blank")
344345
window.open(url);
345346
else if (e.which != 3)
346347
window.location = url;

Griddly/Views/Shared/Griddly/Griddly.cshtml

+2
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
<input class="griddly-init-flag" type="hidden" />
9696
@:<div class="griddly griddly-init @settings.ClassName" data-role="griddly"
9797
@: @Html.AttributeNullable("data-griddly-url", !simple ? Url.Current() : null)
98+
@: @Html.AttributeNullable("data-griddly-urltarget", !simple ? settings.RowClickTarget : null)
9899
@: data-griddly-count="@Model.Total"
99100
@: @Html.AttributeNullable("data-griddly-filtermode", settings.InitialFilterMode != FilterMode.None ? settings.InitialFilterMode.ToString() : null)
100101
@: @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)
@@ -196,6 +197,7 @@
196197
@foreach (object row in Model.Data)
197198
{
198199
<tr @Html.AttributeIf("data-griddly-url", settings.RowClickUrl != null, @<text> @settings.RowClickUrl(row) </text> )
200+
@Html.AttributeIf("data-griddly-urltarget", settings.RowClickTarget != null, @<text> @settings.RowClickTarget </text>)
199201
@Html.AttributeIf("class", settings.RowClass != null, @<text> @settings.RowClass(row) </text> )
200202
@Html.AttributeNullable("data-id", TryEval(row, settings.IdProperty))
201203
@foreach (var x in settings.RowIds)

0 commit comments

Comments
 (0)