当单元格值是链接时,Telerik RadGrid不会选择LEFT CLICK上的Row

时间:2013-10-25 08:52:14

标签: c# javascript asp.net telerik

The Grid Cell That Contains a Link

我的 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>

请让我提醒一下,此代码“工作精细”唯一的问题是,当单元格内容为链接时,网格不会选择行。

1 个答案:

答案 0 :(得分:0)

没有你的网格标记,我无法确定,但我可以想到2个潜在的解决方案。

首先,如果你已经尝试了这个但我没有对你的问题进行网格标记,我很抱歉,你需要确保正确设置选择设置以允许行选择<Selecting AllowRowSelect="true" UseClientSelectColumnOnly="false" />。 / p>

请参阅:http://www.telerik.com/community/forums/aspnet-ajax/grid/select-a-row-in-radgrid-after-a-linkbutton-in-the-radgrid-is-clicked.aspx

另一种可能的方法是使用RadGrid客户端API来选择行,假设clickEventArgsPARAMS属性包含唯一的datakeyvalue供您比较,可能是使用项目上的set_selected函数完成。