Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net中的jquery示例不起作用_C#_Asp.net_Gridview - Fatal编程技术网

C# asp.net中的jquery示例不起作用

C# asp.net中的jquery示例不起作用,c#,asp.net,gridview,C#,Asp.net,Gridview,我正在Visual Studio 2013中试用以下jquery/asp.net代码示例。与下面的示例不同——在我的练习中,我将c#代码放在代码隐藏页面中,并将jquery代码与aspx标记放在一起。gridview显示数据,但当我单击按钮时,不会调用警报。当我尝试在jquery上设置调试时,没有输入jquery代码。如果有人能指出我缺少的东西,我将不胜感激: 代码隐藏 protected void Page_Load(object sender, EventArgs e) { var m

我正在Visual Studio 2013中试用以下jquery/asp.net代码示例。与下面的示例不同——在我的练习中,我将c#代码放在代码隐藏页面中,并将jquery代码与aspx标记放在一起。gridview显示数据,但当我单击按钮时,不会调用警报。当我尝试在jquery上设置调试时,没有输入jquery代码。如果有人能指出我缺少的东西,我将不胜感激:

代码隐藏

protected void Page_Load(object sender, EventArgs e)
{

  var myTestList = new List<MyTestClass1>
  {
     new MyTestClass1 {ID = 1, Name = "Name1"},
     new MyTestClass1 {ID = 2, Name = "Name2"},
     new MyTestClass1 {ID = 3, Name = "Name3"},
     new MyTestClass1 {ID = 4, Name = "Name4"},
     new MyTestClass1 {ID = 5, Name = "Name5"},
     new MyTestClass1 {ID = 6, Name = "Name6"}
  };


    GridView1.DataSource = myTestList;
    GridView1.DataBind();
}

public class MyTestClass1
{
   public int ID { get; set; }
   public string Name { get; set; }

}
受保护的无效页面加载(对象发送方,事件参数e)
{
var myTestList=新列表
{
新的MyTestClass1{ID=1,Name=“Name1”},
新的MyTestClass1{ID=2,Name=“Name2”},
新的MyTestClass1{ID=3,Name=“Name3”},
新的MyTestClass1{ID=4,Name=“Name4”},
新的MyTestClass1{ID=5,Name=“Name5”},
新的MyTestClass1{ID=6,Name=“Name6”}
};
GridView1.DataSource=myTestList;
GridView1.DataBind();
}
公共类MyTestClass1
{
公共int ID{get;set;}
公共字符串名称{get;set;}
}
加价

<%@ Page Language="C#" %>


<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="WebApplication1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

//--I'm doing this in code behind




</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript"    src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>
    <form id="HtmlForm" runat="server">
<asp:GridView ID="GridView1" runat="server" 
    AutoGenerateColumns="false" 
    DataKeyNames="ID">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="CheckSelect" runat="server" />
                <asp:HiddenField ID="hdID" runat="server" 
                    Value='<%# Eval("ID") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <HeaderTemplate>
                Name
            </HeaderTemplate>
            <ItemTemplate>
                <asp:Label runat="server" Text='<%# Eval("Name") %>'>
                </asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<br />
<asp:Button ID="btnGetData" runat="server" Text="Get Data" />

//--我在暗中做这件事
名称

JavaScript

var gridView1Control = document.getElementById('<%= GridView1.ClientID %>');

$('#<%= btnGetData.ClientID %>').click(function(e) {
    //To uncheck the header checkbox when there are no selected checkboxes in itemtemplate
    $('input:checkbox[id$=CheckSelect]:checked', gridView1Control).each(function(item, index) {

        var id = $(this).next('input:hidden[id$=hdID]').val();
        alert(id);
    });
    return false;

});
var gridView1Control=document.getElementById(“”);
$('#')。单击(函数(e){
//在itemtemplate中没有选中复选框时取消选中标题复选框
$('input:checkbox[id$=CheckSelect]:已选中',GridView1控件)。每个(函数(项、索引){
var id=$(this.next('input:hidden[id$=hdID]')).val();
警报(id);
});
返回false;
});

其原因是
asp:GridView
GridView1
中的元素
CheckSelect
获取ID GridView1\u ChkSelect\uu{row\u index},
hdID
获取ID
GridView1\u hdID\uu index}
。这里您使用的是选择器
$=
,它

选择具有指定属性且值以给定字符串结尾的元素。比较是区分大小写的

您需要的是
*=

选择具有指定属性且值包含给定子字符串的元素

像这样更改代码

$('input:checkbox[id*=CheckSelect]:checked',
    gridView1Control).each(function (item, index) {

    var id = $(this).next('input:hidden[id*=hdID]').val();
    alert(id);
});

这是因为
asp:GridView
GridView1
中的元素
CheckSelect
获取ID GridView1\u ChkSelect{row\u index},
hdID
获取ID
GridView1\u hdID{row\u index}
。这里您使用的是选择器
$=
,它

选择具有指定属性且值以给定字符串结尾的元素。比较是区分大小写的

您需要的是
*=

选择具有指定属性且值包含给定子字符串的元素

像这样更改代码

$('input:checkbox[id*=CheckSelect]:checked',
    gridView1Control).each(function (item, index) {

    var id = $(this).next('input:hidden[id*=hdID]').val();
    alert(id);
});

我必须问一下,但我假设你没有任何控制台错误?如果您查看源代码并手动输入按钮客户端id,该怎么办?请尝试更改此$('input:checkbox[id$=CheckSelect]:checked')中的$('input:checkbox[id=“CheckSelect”]:选中“…我无法测试,但乍一看它似乎是错误的选择器。我必须询问,但我假设您没有任何控制台错误?如果您确实查看源代码并手动输入按钮客户端id怎么办?尝试更改此$('input:checkbox[id$=CheckSelect]:选中此$('input:checkbox[id=”CheckSelect“):选中“…我无法测试,但乍一看它似乎是错误的选择器。不,没有控制台错误--但是嘿--太棒了!*=是诀窍!不,没有控制台错误--但是嘿--太棒了!*=是诀窍!