【发布时间】:2013-10-25 08:52:13
【问题描述】:
我的 telerik rad 网格中用于 Asp.net 中有自定义列,其中一些显示链接 (A href='...')。
链接工作正常。
问题是网格不选择我点击的单元格的行仅在时我点击一个有链接(而不是纯文本)的单元格。
通常,当用户单击常规单元格时,网格DOES SELECT不会出现任何问题。
只有当单元格内容是链接时才会发生这种情况。
有办法解决这个问题吗?请。
代码:
1 - 链接后面的链接(进入网格单元格)
<a href="#" onclick="commandManager(event, otherParameters);">Cotgrave</a>
2 - 被调用的代码。
function commandManager(clickEventArgs, PARAMS)
{
$.each(PARAMS, function(key, value) { PARAMS[key].sourceItem = clickEventArgs.target; }); // NOT RELATED TO THIS ISSUE
if(PARAMS.length == 1)
{
// NOT RELATED TO THIS ISSUE
}
else if(PARAMS.length>1)
{
showMenu(clickEventArgs, PARAMS); <<- THIS IS WHERE OUR CASE FOLLOWS
}
else
{
// NOT RELATED TO THIS ISSUE
}
}
3 - 显示菜单功能
function showMenu(e, PARAMS)
{
if ((!e.relatedTarget) || (!$telerik.isDescendantOrSelf(contextMenu.get_element(), e.relatedTarget)))
{
var contextMenu = $find("<%= RadContextMenu1.ClientID %>");
contextMenu.get_items().clear();
for(i=0; i < PARAMS.length; i++)
{
var childItem = new Telerik.Web.UI.RadMenuItem();
childItem.set_text(PARAMS[i].title);
childItem.PARAM=PARAMS[i];
contextMenu.get_items().add(childItem);
}
contextMenu.show(e);
}
}
网格标记
<telerik:RadGrid ID="RadGrid1" runat="server" OnNeedDataSource="RadGrid1_NeedDataSource"
Skin="Default" AutoGenerateColumns="false" AllowMultiRowSelection="true" OnItemDataBound="RadGrid1_ItemDataBound">
<ClientSettings EnableRowHoverStyle="true">
<Scrolling AllowScroll="true" UseStaticHeaders="true" ScrollHeight="10px" />
<Selecting AllowRowSelect="true" />
<ClientEvents OnGridCreated="GridCreated" OnRowClick="RowClicked" OnRowSelected="RowSelectionChanged" OnRowDeselected="RowSelectionChanged"></ClientEvents>
</ClientSettings>
<MasterTableView AllowPaging="true">
<PagerStyle AlwaysVisible="true" />
</MasterTableView>
</telerik:RadGrid>
请提醒我这段代码“WORKS FINE”唯一的问题是当单元格内容是链接时,网格不会选择行。
【问题讨论】:
-
网格生成的整个代码非常复杂,并且可以根据业务问题进行扩展。有问题的区域非常直截了当。它所做的就是捕捉 onClick 事件并显示上下文菜单。问题应该是在显示上下文菜单之后事件没有传播。我添加了代码。
-
只有我一个人有这个问题吗:)
标签: c# javascript asp.net telerik