求教一个响应事件的问题
我用DataGrid的editcommandcolumn做修改数据库里面的信息
当页面初次被请求的时候,一切如我所愿!
但点击编辑按钮之后什么都不见了!
自己设置断点调试,发现程序没有运行到那个断点的位置!
请问究竟为什么呢?
<%@ Page language="c#" Codebehind="editclass.aspx.cs" AutoEventWireup="false" Inherits="MyProject.admin.editclass" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>editclass</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 232px; POSITION: absolute; TOP: 72px" AutoGenerateColumns="False" runat="server" Width="248px">
<Columns>
<asp:EditCommandColumn HeaderText="操作区" EditText="编辑" UpdateText="更新" CancelText="取消" ButtonType="PushButton" />
<asp:BoundColumn HeaderText="classname" DataField="classname" ReadOnly="True" />
</Columns>
</asp:DataGrid>
</form>
</body>
</HTML>
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;
using System.Data.OleDb;
namespace MyProject.admin
{
/// <summary>
/// editclass 的摘要说明。
/// </summary>
public class editclass : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
OleDbConnection MyConn = new OleDbConnection();
public void Page_Load(Object src,EventArgs e)
{
//连接语句
string MyConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("../db.mdb");
MyConn = new OleDbConnection(MyConnString);
MyConn.Open();
if(!Page.IsPostBack)
{
BindGrid();
}
}
ICollection CreateTable()
{
string strSel = "select * from db_class";
DataSet ds = new DataSet();
OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strSel,MyConn);
MyAdapter.Fill(ds,"Class");
return ds.Tables["Class"].DefaultView;
}
public void BindGrid()
{
DataGrid1.DataSource = CreateTable();
DataGrid1.DataBind();
}
//处理Edit命令
public void DataGrid_EditCommand(Object sender,DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex = (int)e.Item.ItemIndex;
BindGrid();
}
//处理Cancel命令
public void DataGrid_CancelCommand(Object sender,DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex = -1;
BindGrid();
}
//处理Update命令
public void DataGrid_UpdateCommand(Object sender,DataGridCommandEventArgs e)
{
//更新数据库中的信息
string strName = e.Item.Cells[1].Text;
//string strChinese = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
//更新数据库中的数据
string strUpdate = "Update Score Set classname="+strName;
OleDbCommand MyComm = new OleDbCommand(strUpdate,MyConn);
MyComm.ExecuteNonQuery();
DataGrid1.EditItemIndex = -1;
BindGrid();
}
public void SelectedIndexChanged(Object src,EventArgs e)
{
BindGrid();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid_CancelCommand);
this.DataGrid1.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid_EditCommand);
this.DataGrid1.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid_UpdateCommand);
this.DataGrid1.SelectedIndexChanged += new System.EventHandler(this.SelectedIndexChanged);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
当页面初次被请求的时候,一切如我所愿!
但点击编辑按钮之后什么都不见了!
自己设置断点调试,发现程序没有运行到那个断点的位置!
请问究竟为什么呢?
<%@ Page language="c#" Codebehind="editclass.aspx.cs" AutoEventWireup="false" Inherits="MyProject.admin.editclass" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>editclass</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 232px; POSITION: absolute; TOP: 72px" AutoGenerateColumns="False" runat="server" Width="248px">
<Columns>
<asp:EditCommandColumn HeaderText="操作区" EditText="编辑" UpdateText="更新" CancelText="取消" ButtonType="PushButton" />
<asp:BoundColumn HeaderText="classname" DataField="classname" ReadOnly="True" />
</Columns>
</asp:DataGrid>
</form>
</body>
</HTML>
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;
using System.Data.OleDb;
namespace MyProject.admin
{
/// <summary>
/// editclass 的摘要说明。
/// </summary>
public class editclass : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
OleDbConnection MyConn = new OleDbConnection();
public void Page_Load(Object src,EventArgs e)
{
//连接语句
string MyConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("../db.mdb");
MyConn = new OleDbConnection(MyConnString);
MyConn.Open();
if(!Page.IsPostBack)
{
BindGrid();
}
}
ICollection CreateTable()
{
string strSel = "select * from db_class";
DataSet ds = new DataSet();
OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strSel,MyConn);
MyAdapter.Fill(ds,"Class");
return ds.Tables["Class"].DefaultView;
}
public void BindGrid()
{
DataGrid1.DataSource = CreateTable();
DataGrid1.DataBind();
}
//处理Edit命令
public void DataGrid_EditCommand(Object sender,DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex = (int)e.Item.ItemIndex;
BindGrid();
}
//处理Cancel命令
public void DataGrid_CancelCommand(Object sender,DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex = -1;
BindGrid();
}
//处理Update命令
public void DataGrid_UpdateCommand(Object sender,DataGridCommandEventArgs e)
{
//更新数据库中的信息
string strName = e.Item.Cells[1].Text;
//string strChinese = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
//更新数据库中的数据
string strUpdate = "Update Score Set classname="+strName;
OleDbCommand MyComm = new OleDbCommand(strUpdate,MyConn);
MyComm.ExecuteNonQuery();
DataGrid1.EditItemIndex = -1;
BindGrid();
}
public void SelectedIndexChanged(Object src,EventArgs e)
{
BindGrid();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid_CancelCommand);
this.DataGrid1.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid_EditCommand);
this.DataGrid1.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid_UpdateCommand);
this.DataGrid1.SelectedIndexChanged += new System.EventHandler(this.SelectedIndexChanged);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
...全文
相关推荐
Qt鼠标键盘响应事件示例
鼠标滚轮响应:滚轮事件可以通过`wheelEvent()`处理。这个函数提供了一个`QWheelEvent`对象,其中包含了滚动的方向和次数。
Qt界面响应键盘事件
要实现Qt界面响应键盘事件,你需要在对应的界面元素(如`QWidget`、`QLineEdit`或`QPushButton`)上连接一个槽函数来处理`QKeyEvent`。
PyQt5响应回车事件的方法
这个事件会传入一个`QKeyEvent`对象,该对象包含了关于按键的所有信息,如按键的编码、类型等。在问题描述中,开发者遇到的问题是无法通过常规方式检测到回车键被按下。
表单Form的submit事件不响应的解决方法
本文主要探讨了表单Form的submit事件不响应的问题及其解决方案,涉及到JavaScript事件注册的不同方式和兼容性处理。在Web开发中,表单提交是一个常见的操作,但有时我们遇到表单的su
javascript 一个函数对同一元素的多个事件响应
为了解决这个问题,可以使用现代JavaScript的事件监听API,如`addEventListener`,它允许为同一个元素添加多个事件监听器,并且每个事件可以有独立的处理函数,这样可以使代码更加清晰


