namespace XSXX.Admin{ /// <summary> /// CollageList 的摘要说明。 /// </summary> public partial class CollageList : System.Web.UI.Page { protected void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(!Page.IsPostBack ) { initList(); } } private void initList() { //显示学院列表 this.DataGrid1.DataSource=DB.Get_Table("select * from Xy"); this.DataGrid1.DataBind(); this.txtBm.Text=""; this.Terr.InnerHtml=""; } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.DataGrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_ItemCommand); } #endregion protected void Button1_Click(object sender, System.EventArgs e) { //学院名称不能为空 if(this.txtBm.Text=="" ) { this.Terr.InnerHtml="<font color='red'>学院名称不能为空</font>"; return; } //添加新的学院 刷新列表 DB.ExecSql("insert into Xy(xymc) values('"+ this.txtBm.Text +"')"); initList(); } private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { if(e.CommandName=="Delete") { //判断记录是否允许删除 if(DB.Get_Table("select * from zr where xyid="+ e.Item.Cells[0].Text).Rows.Count>0) { this.Terr.InnerHtml="<font color='red'>当前的信息已经被使用</font>"; return; } //删除记录 刷新列表 DB.ExecSql("delete from xy where xyid=" +e.Item.Cells[0].Text); initList(); } } }}
e是参数System.Web.UI.WebControls.DataGridCommandEventArgs,代表的意思差不多就是一行,e.Item.Cells[0]是这一行的一个Cell,cell就是单元的意思,整个e.Item.Cells[0].Text意思就是当前行的第一列的数据。
DataGrid触发删除事件的时候 e.Item.Cells[0].Text 获取你所选择这行的第Cells[0]列中的文本然后用得到的ID查询数据select * from zr where xyid=如果查询结果存在记录,就返回已当前信息已被使用。DB.Get_Table("").Rows.Count > 0
你贴的语句里没有 e.Item.Cells[0].Text).Rows.Count 这个啊~~ e.Item.Cells[0].Text).Rows.Count 是不是在datagrid中?e.Item.Cells[0].Text表示的是这一行第一个单元(也是第一列)的text