嗨, 我有每頁顯示10條記錄一個gridview,現在我要實現SHIFT +點擊我的GridView,選項時,在第一行,然後按Shift鍵用戶點擊和點擊第5行,應選擇1和5之間的所有行(包括1和5)...換擋選記錄
任何人都可以建議我應該如何在JavaScript中做到這一點。
嗨, 我有每頁顯示10條記錄一個gridview,現在我要實現SHIFT +點擊我的GridView,選項時,在第一行,然後按Shift鍵用戶點擊和點擊第5行,應選擇1和5之間的所有行(包括1和5)...換擋選記錄
任何人都可以建議我應該如何在JavaScript中做到這一點。
我拿回來,我發現一個shift+click multiple select解決方案的GridView。所有的功勞歸功於mdv在asp論壇上。
var _sPreviousRow = null;
function wsCheckRange(p_oGridView, p_oControl, e) {
var l_sCheckID = p_oControl.id;
var l_aCheckIDParts = l_sCheckID.split(p_oGridView.id);
var l_sCurrentRow = l_aCheckIDParts[1].split('_')[1].substring(3);
var l_oEvent = (window.event) ? event : e;
if (l_oEvent.shiftKey) {
if (_sPreviousRow != null && _sPreviousRow != l_sCurrentRow) {
var l_iFirst = 0, l_iLast = 0;
if (parseInt(_sPreviousRow,10) > parseInt(l_sCurrentRow,10)) {
l_iFirst = parseInt(l_sCurrentRow,10);
l_iLast = parseInt(_sPreviousRow,10);
}
else {
l_iFirst = parseInt(_sPreviousRow,10);
l_iLast = parseInt(l_sCurrentRow,10);
}
for (var i = l_iFirst; i < l_iLast; i++) {
var l_sLastRow = (i <= 9 ? '0' + i : i);
var l_sCtrlNew = l_sCheckID.replace('ctl' + l_sCurrentRow, 'ctl' + l_sLastRow);
var l_oCtrlNew = $get(l_sCtrlNew);
if (l_oCtrlNew) {
l_oCtrlNew.checked = p_oControl.checked;
}
}
}
_sPreviousRow = null;
}
else {
_sPreviousRow = l_sCurrentRow;
}
}
不確定關於移位點擊,但您可以[使用複選框](http://www.codeproject.com/KB/aspnet/Extend_GridView.aspx)進行選擇。 – 2011-04-17 07:24:48