[英]Adding a 'target' attribute to the URL of a tabstrip item in Telerik MVC extensions
我用下面的Telerik Extensions Tabstrip替换了这个“手动滚动”的Tabstrip,但是我无法理解如何让Tabstrip在每个项目的URL中包括target
属性。 我该如何实现?
之前:
<ol>
@foreach (var sheet in Model.Sheets)
{
<li>
<a href="@(Url.Content(Server.MapUrl(sheet.FilePath)) + "?guid=" + Guid.NewGuid())" target="selected-worksheet">@sheet.Name</a></li>
}
</ol>
后:
@Html.Telerik().TabStrip().Name("Card").BindTo(Model.Sheets, (item, tabInfo) =>
{
item.Text = tabInfo.Name;
item.Url = Url.Content(Server.MapUrl(tabInfo.FilePath));
})
您可以使用LinkHtmlAttributes
属性设置其他html属性:
item.LinkHtmlAttributes = new Dictionary<string, object>
{
{ "target", "selected-worksheet" }
};
实际上,我从未使用过Telerik,所以我不确定是否需要实例化新字典或仅添加键(以防属性被自动实例化):
item.LinkHtmlAttributes["target"] = "selected-worksheet";
我认为Telerik TreeView也有类似的问题,并通过绕行jQuery来解决。
我的问题是,将任何(Link)HtmlAttributes传递给View中的TreeViewItems无效。 element): 我试图几个HtmlAttributes在控制器添加到树型视图:(例如,一个属性我想添加到元素):
newNodes[i].HtmlAttributes.Add("data-ajax-update","#main");
as of the Ajax-Request, all except were then empty in the View. ,但作为Ajax-Request的 后,除之外的所有都为空。
我找到了一个明智的答案,即这些元素未在Telerik论坛中序列化: http : //www.telerik.com/community/forums/aspnet-mvc/treeview/target-blank-on-treeviewitem-url.aspx#1548458
然后,我通过添加特殊
<span class="treeViewItemAddAjaxLocation"></span>
of the TreeViewItem. TreeViewItem的的元素。 element. 在视图定位这些元件然后通过jQuery并加入所需的HTML的属性到元素。
通过Ajax对第二和第三阶段元素的Telerik TreeView绑定方法:
.DataBinding(databinding => databinding.Ajax().Select("_AjaxLoading", "Menu"))
动作“ _AjaxLoading”中的控制器代码段:
IList<TreeViewItem> newNodes = new List<TreeViewItem>();
foreach (RevisionEntity revision in revisions)
{
newNodes.Add(new TreeViewItem()
{
Text = "Node Name" + "<span class='treeViewItemAddAjaxLocation'></span>", // name + locator element
Value = revision.ID.ToString() + ";RevisionEntity",
Encoded = false,
Enabled = true,
LoadOnDemand = false,
Url("/Menu/NavigateToRevisionDetails"), // creates an < a > element
});
}
return new JsonResult { Data = newNodes };
视图:
<div class="t-bot">
<a class="t-link t-in" href="/Menu/NavigateToRevisionDetails" data-ajax-update="#main" data-ajax-mode="replace" data-ajax-method="GET" data-ajax="true">Node Name
<span class="treeViewItemAddAjaxLocation"></span>
</a>
<input class="t-input" type="hidden" value="774336a5-c6eb-42cc-905a-4d215c957fa2;RevisionEntity" name="itemValue">
</div>
function TreeView_onLoad(e) {
var treeView = $(this).data("tTreeView");
$(".treeViewItemAddAjaxLocation", treeView.element)
.each(function () {
var $this = $(this); // put it in jQuery constr
item = $this.closest(".t-link"); // take the a
item.attr('data-ajax-update', '#main');
item.attr('data-ajax-mode', 'replace');
item.attr('data-ajax-method', 'GET');
item.attr('data-ajax', 'true');
$this.remove(); // removes the span element
});
}
结果TreeView元素:
<div class="t-bot">
<a class="t-link t-in" href="/Menu/NavigateToRevisionDetails" data-ajax-update="#main" data-ajax-mode="replace" data-ajax-method="GET" data-ajax="true">Node Name</a>
<input class="t-input" type="hidden" value="774336a5-c6eb-42cc-905a-4d215c957fa2;RevisionEntity" name="itemValue">
</div>
在#main html元素中加载通过Ajax通过“ NavigateToRevisionDetails”操作调用的PartialView,而页面的其余部分不会刷新!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.