代码如下:
----------
test.aspx
----------<%@ Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="english.test1.test" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>test</title>
<meta content="False" name="vs_snapToGrid">
<meta content="False" name="vs_showGrid">
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="false" OnItemCommand="more_click">
<Columns>
<asp:BoundColumn DataField="msg_write"></asp:BoundColumn>
<asp:ButtonColumn Text="more..." HeaderText="more" CommandName="more"></asp:ButtonColumn>
</Columns>
</asp:datagrid></FONT></form>
</body>
</HTML>-----------
test.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;namespace english.test1
{
/// <summary>
/// test 的摘要说明。
/// </summary>
public class test : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
System.Data.OleDb.OleDbConnection myconn=new System.Data.OleDb.OleDbConnection();
System.Data.OleDb.OleDbCommand mycomm=new System.Data.OleDb.OleDbCommand();
System.Data.OleDb.OleDbDataAdapter myada=new System.Data.OleDb.OleDbDataAdapter();
System.Data.DataSet mydataset =new DataSet();

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
data_bind();
}
}
void data_bind()
{
myconn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("db.mdb");
mycomm.CommandText="select * from msg_info";
mycomm.Connection=myconn;
myada.SelectCommand=mycomm;
myada.Fill(mydataset,"msg_info");
DataGrid1.DataSource=mydataset.Tables["msg_info"];
DataGrid1.DataBind();
myconn.Close();
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.DataGrid1.SelectedIndexChanged += new System.EventHandler(this.DataGrid1_SelectedIndexChanged);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
{

}
void more_click(Object sender,DataGridCommandEventArgs e)
{
Response.Write("akdfjafkj;d");
}
}
}
---------------------
运行后的错误提示:
---------------------
编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS0122: 不可访问“english.test1.test.more_click(object, System.Web.UI.WebControls.DataGridCommandEventArgs)”,因为它受保护级别限制源错误: 行 14:  <form id="Form1" method="post" runat="server">
行 15:  <FONT face="宋体">
行 16:  <asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="false" OnItemCommand="more_click">              <----这一行为红色
行 17:  <Columns>
行 18:  <asp:BoundColumn DataField="msg_write"></asp:BoundColumn>各们.NET高手帮看看,错在那?
 

解决方案 »

  1.   

    protected void more_click(Object sender,DataGridCommandEventArgs e)//改成这样试试
    {
    Response.Write("akdfjafkj;d");
    }
      

  2.   


    void more_click(Object sender,DataGridCommandEventArgs e)这一句,前面加个 private
      

  3.   

    加上public ,将这一句改成
    public void more_click(Object sender,DataGridCommandEventArgs e)
    {
    Response.Write("akdfjafkj;d");
    }
      

  4.   

    void more_click(Object sender,DataGridCommandEventArgs e)
    这里的限定符没有了,
      

  5.   

    singlepine(小山) 
    hchxxzx(NET?摸到一点门槛) 
    andy0618(碧海潮生)
    lemong(風之影) 
    非常感谢上面四位帮我解答问题。我试了试,结果用public 测试可以通过,用private测试没有通过,用protected测试也可以通过。这是为什么呢?
    能不能帮我说明一下这些限定符的意思呢?
      

  6.   

    public 是没有访问的限制 private是私有的只能在本类或方法中调用 protected 是受保护的他除了能在本类中访问外还可以在它的派生类中访问.大体上的理解,不详细还请包涵.
      

  7.   

    参看:http://www.netyi.net/in.asp?id=roapzone