- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 vs 2010 和 C#。我想选择在 GridView 中使用 Shift 键检查的多行
我尝试使用java脚本但不起作用
这是我的网格
<asp:GridView ID="gvDetails" runat="server" AutoGenerateColumns="false" CssClass="normtxt"
HeaderStyle-BackColor="#819FF7" ShowFooter="true" HeaderStyle-Font-Bold="true" EmptyDataText="No records found"
OnRowCancelingEdit="gvDetails_RowCancelingEdit"
OnRowDeleting="gvDetails_RowDeleting"
OnRowEditing="gvDetails_RowEditing" OnRowUpdating="gvDetails_RowUpdating" OnRowCommand="gvDetails_RowCommand">
<RowStyle ForeColor="#000066" BorderColor="#7BA1C3" />
<HeaderStyle BackColor="#7BA1C3" Font-Bold="false" ForeColor="White" CssClass="lockHeadDivdgrid" />
<Columns>
<asp:TemplateField ItemStyle-Width="40px">
<HeaderTemplate>
<asp:CheckBox ID="chkAll" runat="server" Text="All" AutoPostBack="true"
OnCheckedChanged="chkAll_OnCheckedChanged" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkOne" onclick='<%# string.Format("javascript:selectCheckbox(this,{0});", Container.DataItemIndex) %>' runat="server" AutoPostBack="true" OnCheckedChanged="chkAll_OnCheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ParagraphStyle" ItemStyle-Width="150" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="lblParagraphStyle" runat="server" Text='<%#Eval("ParagraphStyle") %>' />
<asp:TextBox ID="txtParagraphStyle" runat="server" Text='<%# Eval("ParagraphStyle") %>'
Visible="false" CssClass="txt_1"></asp:TextBox>
<asp:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" ServiceMethod="AutoCompleteAjaxParaRequest"
ServicePath="Service1.asmx" MinimumPrefixLength="1" CompletionInterval="100"
EnableCaching="false" CompletionSetCount="10" TargetControlID="txtParagraphStyle"
FirstRowSelected="true" ShowOnlyCurrentWordInCompletionListItem="true">
</asp:AutoCompleteExtender>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Parent" ItemStyle-Width="150" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="lblParent" runat="server" Text='<%# Eval("Parent") %>'></asp:Label>
<asp:TextBox ID="txtParent" runat="server" Text='<%#Eval("Parent") %>' Visible="false" CssClass="txt_1" />
<asp:AutoCompleteExtender ID="AutoCompleteExtender2" runat="server" ServiceMethod="AutoCompleteAjaxParentRequest"
ServicePath="Service1.asmx" MinimumPrefixLength="1" CompletionInterval="100"
EnableCaching="false" CompletionSetCount="10" TargetControlID="txtParent" FirstRowSelected="true"
ShowOnlyCurrentWordInCompletionListItem="true">
</asp:AutoCompleteExtender>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="fnCriteria" ItemStyle-Width="150" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="lblfnCriteria" runat="server" Text='<%# Eval("fnCriteria") %>'></asp:Label>
<asp:TextBox ID="txtfnCriteria" runat="server" Text='<%#Eval("fnCriteria") %>' Visible="false"
CssClass="txt_1" />
<asp:AutoCompleteExtender ID="AutoCompleteExtender3" runat="server" ServiceMethod="AutoCompleteAjaxfnCriteriaRequest"
ServicePath="Service1.asmx" MinimumPrefixLength="1" CompletionInterval="100"
EnableCaching="false" CompletionSetCount="10" TargetControlID="txtfnCriteria"
FirstRowSelected="true" ShowOnlyCurrentWordInCompletionListItem="true">
</asp:AutoCompleteExtender>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="fnCase" ItemStyle-Width="10" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="lblfnCase" runat="server" Width="50px" Text='<%# Eval("fnCase") %>'></asp:Label>
<asp:TextBox ID="txtfnCase" runat="server" Text='<%#Eval("fnCase") %>' Visible="false" CssClass="txt_1" />
<asp:AutoCompleteExtender ID="AutoCompleteExtender4" runat="server" ServiceMethod="AutoCompleteAjaxfnCaseRequest"
ServicePath="Service1.asmx" MinimumPrefixLength="1" CompletionInterval="100"
EnableCaching="false" CompletionSetCount="10" TargetControlID="txtfnCase" FirstRowSelected="true"
ShowOnlyCurrentWordInCompletionListItem="true">
</asp:AutoCompleteExtender>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="fnFormat" ItemStyle-Width="150" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="lblfnFormat" runat="server" Text='<%# Eval("fnFormat") %>'></asp:Label>
<asp:TextBox ID="txtfnFormat" runat="server" Text='<%#Eval("fnFormat") %>' Visible="false" CssClass="txt_1" />
<asp:AutoCompleteExtender ID="AutoCompleteExtender5" runat="server" ServiceMethod="AutoCompleteAjaxfnFormatRequest"
ServicePath="Service1.asmx" MinimumPrefixLength="1" CompletionInterval="100"
EnableCaching="false" CompletionSetCount="10" TargetControlID="txtfnFormat" FirstRowSelected="true"
ShowOnlyCurrentWordInCompletionListItem="true">
</asp:AutoCompleteExtender>
</ItemTemplate>
</asp:TemplateField>
我的 JavaScript 是
<script type="text/javascript">
var startingIndex = 0, gridViewID = '<%= gvDetails.ClientID %>';
function selectCheckbox(checkbox, selectedInded) {
alert(gridViewID);
if (event.shiftKey) {
//shift end
alert("");
if (startingIndex < selectedInded)
//forward
$(':checkbox', '#' + gridViewID).slice(startingIndex, selectedInded).prop("checked", true);
else
//backward
$(':checkbox', '#' + gridViewID).slice(selectedInded, startingIndex).prop("checked", true);
}
startingIndex = selectedInded;
}
</script>
建议我找到解决方案。提前致谢
最佳答案
您无法像这样访问事件对象。它仅在事件处理程序的范围内定义,在本例中是 onclick
属性值内的代码。如果您想从那里调用另一个函数,您应该将 event
对象作为参数传递。
而且您还混合了客户端和服务器端事件,这似乎不是您想要的,因此我删除了服务器事件处理程序并将 AutoPostBack
设置为 false
.
标记代码中的复选框变为:
<asp:CheckBox ID="chkOne" onclick='<%# string.Format("javascript:selectCheckbox(event,{0});", Container.DataItemIndex) %>' runat="server" AutoPostBack="false" />
你的脚本:
<script type="text/javascript">
var startingIndex = 0, gridViewID = '<%= gvDetails.ClientID %>';
function selectCheckbox(e, selectedIndex) {
if (e.shiftKey) { alert("shift pressed");
if (startingIndex < selectedIndex)
{
alert( $(':checkbox', '#' + gridViewID).length);
$(':checkbox', '#' + gridViewID).slice(startingIndex, selectedIndex).prop("checked", true);
}
else
$(':checkbox', '#' + gridViewID).slice(selectedIndex, startingIndex).prop("checked", true);
}
startingIndex = selectedIndex;
}
</script>
这是我的测试,运行良好。我使用了一个简单的DataSource
,但它也适用于任何其他源。只是为了给你正确的方向。
WebForm1.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
var startingIndex = 0, gridViewID = '<%= gvDetails.ClientID %>';
function selectCheckbox(e, selectedIndex) {
if (e.shiftKey) {
alert("shift pressed");
if (startingIndex < selectedIndex) {
alert($(':checkbox', '#' + gridViewID).length);
$(':checkbox', '#' + gridViewID).slice(startingIndex, selectedIndex).prop("checked", true);
}
else
$(':checkbox', '#' + gridViewID).slice(selectedIndex, startingIndex).prop("checked", true);
}
startingIndex = selectedIndex;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="gvDetails" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField ItemStyle-Width="40px">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkOne" onclick='<%# string.Format("javascript:selectCheckbox(event,{0});", Container.DataItemIndex) %>' runat="server" AutoPostBack="false" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body>
</html>
和WebForm1.aspx.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication2
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
gvDetails.DataSource = new int[] { 0, 1, 2, 3, 4, 5, 6 };
gvDetails.DataBind();
}
}
}
关于javascript - 复选框在 gridview asp.net 中使用 Shift 键进行多项选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26859170/
我正在尝试实现 Intellij 之类的双类导航。我发现它被称为“快速打开文件”的“序列键绑定(bind)”。 因此,我在 .sublime-keymap --- USER 中添加了这一行 { "
this.x = (Math.random()*canvasWidth); this.y = (Math.random()*canvasHeight); (1) this.shift = {x: th
我目前正在研究编译器,据我了解,在 LR(0) 中,有时会出现“shift/reduce”或“reduce/reduce”冲突,但不可能出现“shift/shift”冲突!为什么我们不能发生“转变/转
我希望使用 AutoHotKey 来修改我的 shift 键的功能。 Steve Losh 的博客条目 here 中描述了该功能。 .具体来说,我希望我的 shift 键执行以下操作: 如果 LShi
在我的Redis数据库中,我有一个以prefix:格式保存的键列表,所以示例数据库看起来像这样:。问题是,当我尝试删除前缀:1时,因为无论出于什么原因,我都需要删除IPSUM,在索引之间留下了一个间隙
在我的Redis DB中,我有一个以prefix:格式保存的键列表,因此示例数据库如下所示:。问题是,当我尝试删除前缀:1时,因为无论出于什么原因,我都需要删除IPSUM,在索引之间留下了一个间隙--
Listview 控件中是否有可以上下移动项目的功能? 最佳答案 我没有太多使用 TListView(我主要使用数据库网格),我把你的问题作为学习一些东西的机会。下面的代码是结果,它比大卫的答案更直观
我有点难以发现这两种操作的不同之处。所以我读到算术移位与逻辑移位基本相同,唯一的区别是它以某种方式保持最高位或有符号位。 所以当我在 101110 上做 LSL #2 时假设这个二进制是一个无符号的,
我正在尝试使用 shift+shift 配置键映射,这可能吗? 我试过: But this maps shift + S and this that maps to unknown 最佳答案 您不
我正在努力在 vim 中绑定(bind) Shift+- 组合。我已经尝试了以下两种选项,但都没有可用的选项,并且谷歌搜索没有带来任何相关信息。 nnoremap - nnoremap - 我正在
我正在使用基于Gallery 的Cover-flow,正如建议的那样here . 是否有可以捕获的事件表明在我的画廊/封面流中进行了一次移位(向左或向右)? 需要明确的是,如果我给画廊一个像样的滑动并
这个问题在这里已经有了答案: Cocoa - NSEvent Respond to the SHIFT key? (5 个答案) 关闭 3 年前。 我正在制作这个应用程序,我想检测是否检测到 shi
我不允许在我的 C 代码中使用浮点变量(出于性能原因)。我想进行整数除法运算,同时我想尽可能地防止除法损失。 我的理解是,如果分子很大,除法运算会产生很好的结果。目前我正在对分子进行左移操作以使其成为
我有一个文本输入,当用户按下 shift(keydown)并绑定(bind)一个监听器以监听 shift 键时,它现在变得透明 即。 $('#foo').keydown(function(){
我有一个包含 shift 命令的 bash 脚本。 它在 bash 中运行正常,但在 zsh 环境中,shift 命令似乎不同。 zsh $ shift shift: shift count must
我正在使用 Fedora 29 中包含的 vim: VIM - Vi IMproved 8.1(2018 年 5 月 18 日,2019 年 2 月 4 日 14:19:12 编译) 我刚刚注意到按
我有一个包含 shift 命令的 bash 脚本。 它在 bash 中运行正常,但在 zsh 环境中,shift 命令似乎不同。 zsh $ shift shift: shift count must
我正在使用 Fedora 29 中包含的 vim: VIM - Vi IMproved 8.1(2018 年 5 月 18 日,2019 年 2 月 4 日 14:19:12 编译) 我刚刚注意到按
我可以使用 UITextViewDelegate 或 NSNotificationCenter 来检测用户何时点击 Keyboard 上的字符键将文本输入到 UITextView. 但我的应用程序需要
当我尝试单击 shift + tab 组合时, Shiftkey 被触发 $("#buttonZZ").on("keydown",function (eve) { if (eve.keyCod
我是一名优秀的程序员,十分优秀!