gridview多行选择使用shift和鼠标左键

时间:2014-10-24 04:14:27

标签: javascript c# asp.net gridview

我需要使用鼠标按钮切换键支持。我的要求是通过选择第一行选择多行,然后点击移动按下的最后一行网格,它选择第一行和最后一行之间的所有行。

如何在ASP.NET Gridview中实现它

1 个答案:

答案 0 :(得分:2)

您应该在客户端执行此操作。在那里你必须使用JavaScript或JQuery以及CSS。而且,您应该知道GridView最终会转换为客户端的HTML表。这是给你试一试的小费。请按照以下步骤操作。

假设 - GridView中的每一行都有一个行号和一个隐藏字段,用于表明它是否被选中(您可以轻松地执行此操作加载数据)。

  1. 创建两个名为SelectedRowDefaultRow的CSS类(您可以为这些类使用您喜欢的任何名称)。

  2. 第一次加载表时,所有行都应该具有CSS类DefaultRow并且隐藏字段值设置为0(或者您希望指示未选择行的任何值)。 / p>

  3. 编写JavaScript或JQuery来处理第一行(TR)点击(您不会在此阶段按Shift键)并将该行的CSS类(TR)更改为SelectedRow隐藏字段值为1.并且,将此第一行编号保存在单独的隐藏字段中,以便轻松识别所选的第一行。

  4. 注意:在同一个函数中,您应该将CSS类的其余部分设置为DefaultRow。如果用户只是在没有Shift键的情况下点击,那么这只是为了清除所有选择。

    1. 现在。编写JavaScript或JQuery来处理HTML行上的 Shift + Click ,并从所选的第一行更改该行(TR)的CSS类和所有其他行(+或 - 基于第一行编号)(您刚刚保存在隐藏字段中的行号到SelectedRow。在此阶段,您应将所选行的所有隐藏字段值设置为1.
    2. 以下是在JQuery中处理 Shift + Click 事件的示例

      $(document).click(function(e) {
          if (e.shiftKey) {
              alert("shift+click")
          } 
      });
      
      1. 现在,您可以从后面的代码中读取隐藏的字段值,并在所选行上执行您喜欢的任何处理。
      2. 希望你理解这里的逻辑。 :)