c# - ASP.eventtracker_aspx' 不包含定义

标签 c# asp.net

我正在阅读一本 ASP C# 书籍并完成教程。但是我遇到了一个问题。我有以下代码将列出一些事件。

事件跟踪器.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EventTracker.aspx.cs" Inherits="EventTracker" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
  <title>Event Tracker</title>
  <style type="text/css">
      h1 
      {
          font-size: large;       
      }
  </style>
</head>
<body>
  <form id="Form1" runat="server">
    <div>       
      <h1>Controls being monitored for change events:</h1>
      <asp:TextBox ID="txt" runat="server" AutoPostBack="true"
       OnTextChanged="CtrlChanged" />
      <br /><br />
      <asp:CheckBox ID="chk" runat="server" AutoPostBack="true"
       OnCheckedChanged="CtrlChanged"/>
      <br /><br />
      <asp:RadioButton ID="opt1" runat="server" GroupName="Sample"
       AutoPostBack="true" OnCheckedChanged="CtrlChanged"/>
      <asp:RadioButton ID="opt2" runat="server" GroupName="Sample"
       AutoPostBack="true" OnCheckedChanged="CtrlChanged"/>
      <br /><br /><br /> 
       <h1>List of events:</h1>
      <asp:ListBox ID="lstEvents" runat="server" Width="355px"
       Height="305px" /><br />      
    </div>
  </form>
</body>
</html>

事件跟踪器.aspx.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

public partial class EventTracker : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Log("<< Page_Load>>");

    }

    protected void Page_PreRender(object sender, EventArgs e)
    {
        //Find the control ID of the sender. 
        //This requires converting the Object type into a control class. 
        string ctrlName = ((Control)sender).ID;
        Log(ctrlName + " Changed");
    }

    protected void Log(string entry)
    {
        lstEvents.Items.Add(entry);

        //Select the last item to scroll the list so the most recent are visible
        lstEvents.SelectedIndex = lstEvents.Items.Count - 1;
    }
}

我收到以下错误:

Error 1 'ASP.eventtracker_aspx' does not contain a definition for 'CtrlChanged' and no extension method 'CtrlChanged' accepting a first argument of type 'ASP.eventtracker_aspx' could be found (are you missing a using directive or an assembly reference?)

我是 ASP 的新手,想了解为什么会出现这样的错误,以便在以后的引用中我知道是什么原因造成的。

最佳答案

在你的标记中你有

OnCheckedChanged="CtrlChanged"

但是在您的代码隐藏中没有具有该名称/匹配签名的事件处理程序...

每次您的 CheckBox 更改时都会触发此事件,但您的代码中没有任何内容可以响应。

你需要类似的东西

protected void CtrlChanged(object sender, EventArgs e)   
    {  // do something }

关于c# - ASP.eventtracker_aspx' 不包含定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8534881/

相关文章:

c# - 帮助超出范围的函数 (C#)

c# - RAII 是如何在 Java/Scala 等具有垃圾回收功能的语言中替换/实现的?

C# 如何检查当前为字符串的日期是否为今天?

asp.net - 将 Node.JS 与 ASP.NET WebForm 和 Socket.IO 结合使用

c# - SignalR 中的消息顺序 - 如何确保它

c# - 在 WCF 服务中使用 NetworkCredential

c# - 保持我的列表/词典在全局范围内可访问

c# - VB.NET 类型转换 ListView 标记对象

c# - 必须声明标量值?

jquery - 单击使用 jquery 将类添加到 aspx linkbutton