【问题标题】:ASP.NET gridview - Allow multiselect from control key press down and left mouse button click togetherASP.NET gridview - 允许从控制键按下和鼠标左键单击多选
【发布时间】:2014-10-21 03:13:07
【问题描述】:

单行选择要求:

我当前的 gridview 仅在单击该行时选择该行。因此,如果用户单击第 2 行,然后单击第 3 行,则它不仅不是最近(第 3)行,而且第 2 行显示为选中状态。现在的要求是,当用户选择第 2 行,然后点击第 3 行时,应该只选择第 3 行而不选择第 2 行。

多行选择要求:

此外,应该允许用户通过单击“CTRL”键并在行上单击鼠标左键来选择多行。

如何使用 JAVASCRIPT 实现这一点?我是 Javascript 和/或 Gridview 的新手。有人可以帮我这个代码吗?

请记住,我们的应用是基于 2.0 的

【问题讨论】:

  • @ArindamNayak:抱歉,我在 2 天前查看了这个本身,并且一天已满。但是,我们的客户不想要这个选择复选框。你能用javascript做吗?我知道它只是一个简单的小函数 2 或 3 行代码,但我不知道 JS 以及如何将其发布回我处理逻辑的 UI 中
  • 如果没有任何复选框,那么如何,可以多选,我的意思是选择的处理程序是什么?
  • @ArindamNayak:简单的伙伴,只需使用 javascript 函数来捕获 GRIDVIEW ROW 上的“CTRL+LEFT MOUSE BUTTON”组合键。如果是,请选择。同时,如果再次点击选中的行,则取消选中。这个逻辑我不知道如何在 C# 和 Javascript 中的代码/语法中实现。我知道这个概念,但很遗憾我不知道如何使用代码来实现我的想法。我是新人
  • 我可以给你一个粗略的想法,如果你同意怎么做,但我从未尝试过,这只是一个想法。

标签: javascript asp.net .net gridview .net-2.0


【解决方案1】:
  1. 创建全局 JS 变量说,var rows_clicked = []
  2. 使用以下链接检查如何检测 CTRL + CLICK。我们将在后面的步骤中使用它。 - How to detect control+click in Javascript from an onclick div attribute?
  3. 使用此代码绑定gridview行点击事件。
$('#<%=gvw.ClientID%> tr[id]').click(function() {
     // row click handler     , gridview id = gvw -- assumption
     // check if it is clicked earlier using IsClicked() 
     // if clicked 1st time, then call OnRowClick, else OnRowDeselect
      $(this).css("color","red");// set some css to look like selected.
});
function OnRowClick()
    {

      // detect if ctrl+clicked, then save that row's datakey to global 

      // if it is that, then 
      rows_clicked.push(datakey);
      // and set clicked = true.
      $(this).attr("clicked",true);
    }

4.

function OnRowDeselect()
{
// remove that datakey from `rows_clicked`
}

5.

 function IsClicked(element)
{
if($(element).attr("clicked")) // clicked is an attr to check if row clicked 1st time or deselected
return true;
else
return false;
}

使用此rows_clicked 并设置在隐藏文件中,然后回发以在服务器端代码中选择rows

【讨论】:

    猜你喜欢
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    相关资源
    最近更新 更多