【问题标题】:Telerik RadGrid Does NOT select Row on LEFT CLICK when the cell value is a link当单元格值为链接时,Telerik RadGrid 不会在左键单击时选择行
【发布时间】: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


【解决方案1】:

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

首先,如果您已经尝试过但没有在问题上添加网格标记,我深表歉意,您需要确保正确设置选择设置以允许行选择&lt;Selecting AllowRowSelect="true" UseClientSelectColumnOnly="false" /&gt;

见: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 属性包含一个唯一的数据键值供您比较,可以使用 set_selected项上的功能。

【讨论】:

  • 谢谢,我试试看。顺便说一句,我添加了网格标记,如果你可以再看看。
猜你喜欢
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
  • 2015-03-16
  • 2022-06-14
  • 1970-01-01
相关资源
最近更新 更多