我的 telerik rad grid for Asp.net 中有自定义列,其中一些显示链接(A href ='...')。
链接工作正常。
问题是我点击的单元格的网格不选择 我点击一个有链接的单元格(而不是纯文本)。当用户点击常规小区时,通常网格选择行没有任何问题。
仅当单元格内容是链接时才会发生这种情况。
任何想法绕过这个?请。
代码:
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>
请让我提醒一下,此代码“工作精细”唯一的问题是,当单元格内容为链接时,网格不会选择行。
答案 0 :(得分:0)
没有你的网格标记,我无法确定,但我可以想到2个潜在的解决方案。
首先,如果你已经尝试了这个但我没有对你的问题进行网格标记,我很抱歉,你需要确保正确设置选择设置以允许行选择<Selecting AllowRowSelect="true" UseClientSelectColumnOnly="false" />
。 / p>
另一种可能的方法是使用RadGrid客户端API来选择行,假设clickEventArgs
或PARAMS
属性包含唯一的datakeyvalue供您比较,可能是使用项目上的set_selected函数完成。