javascript - ASP.NET gridview允许多个控件按键按下和鼠标左键单击一起单击

  显示原文与译文双语对照的内容

单行选择要求:

当前的gridview在单击行时选择行。 因此,如果用户单击 2nd 行然后 3rd 行,它就不是最近的( 3rd ) 行,而且行显示为选中的行。 现在需求是,当用户选择 2nd 行,然后单击 3rd 行,只需选择 3rd 行,而不是第 2nd 行。

多行选择要求:

这里外,应该允许用户通过单击"ctrl"键并单击鼠标左键来选择多行。

如何使用javascript实现这里功能? 我是Javascript的新手,或者是 Gridview 。 请有人帮我这个代码好?

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

时间: 作者:

  1. 创建全局JS变量, var rows_clicked = []
  2. 使用以下链接检查如何检测 CTRL + 单击。 我们将在以后的步骤中使用。 - 如何从 onclick div属性中检测到Javascript中的control+click
  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 并在hiddenfiled中设置,以及在服务器端代码中获取选定 rows的postback 。

作者:
...