private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ DataGrid1.EditItemIndex=-1;
BindGrid();
}private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ Update table........
BindGrid();
}
{ DataGrid1.EditItemIndex=-1;
BindGrid();
}private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ Update table........
BindGrid();
}
http://bbs.dvbbs.net/UploadFile/2004-7/200479181540646.gif
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
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.Configuration;
namespace topwok.admin
{
/// <summary>
/// administrator 的摘要说明。
/// </summary>
public class administrator : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.TextBox TextBox9;
protected System.Web.UI.WebControls.TextBox TextBox3;
protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator5;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.CompareValidator Comparevalidator2;
protected System.Web.UI.WebControls.TextBox TextBox2;
protected System.Web.UI.HtmlControls.HtmlSelect Select1;
protected System.Web.UI.HtmlControls.HtmlInputButton Submit1;
SqlConnection myconnect=new SqlConnection(ConfigurationSettings.AppSettings["connstr"]);
private void Page_Load(object sender, System.EventArgs e)
{
myconnect.Open();
if(!Page.IsPostBack)
{
BindGrid();
Page.DataBind();
}
} #region Web Form Designer generated code
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.DataGrid1_CancelCommand_1);
this.DataGrid1.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_EditCommand);
this.DataGrid1.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_UpdateCommand);
this.DataGrid1.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_DeleteCommand);
this.Submit1.ServerClick += new System.EventHandler(this.Submit1_ServerClick);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
//数据绑定函数
private void BindGrid()
{
SqlDataAdapter MyCommand = new SqlDataAdapter("SELECT * from admin", myconnect);
DataSet ds = new DataSet();
MyCommand.Fill(ds, "table1");
DataGrid1.DataSource = ds.Tables["table1"].DefaultView;
DataGrid1.DataBind();
}
private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex=e.Item.ItemIndex;
BindGrid();
}
private void DataGrid1_CancelCommand_1(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex=-1;
BindGrid();
} private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string updatestr="update admin set username=@username,uid=@uid,pwd=@pwd,power=@power where id=@id";
SqlCommand mycommand=new SqlCommand(updatestr,myconnect);
mycommand.Parameters.Add("@id",SqlDbType.Int).Value=DataGrid1.DataKeys[e.Item.ItemIndex];
TextBox first,second,third;
DropDownList forth;
first=(TextBox)e.Item.FindControl("edit_username");
second=(TextBox)e.Item.FindControl("edit_uid");
third=(TextBox)e.Item.FindControl("edit_pwd");
forth=(DropDownList)e.Item.FindControl("edit_power");
mycommand.Parameters.Add("@username",SqlDbType.VarChar,20).Value=first.Text;
mycommand.Parameters.Add("@uid",SqlDbType.VarChar,20).Value=second.Text;
mycommand.Parameters.Add("@pwd",SqlDbType.VarChar,20).Value=third.Text;
mycommand.Parameters.Add("@power",SqlDbType.Int).Value=1;
mycommand.ExecuteNonQuery();
DataGrid1.EditItemIndex=-1;
BindGrid();
} private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string deletestr="delete admin where id=@id";
SqlCommand mycommand=new SqlCommand(deletestr,myconnect);
string key=DataGrid1.DataKeys[(int)e.Item.ItemIndex].ToString();
mycommand.Parameters.Add("@id",SqlDbType.Int).Value=int.Parse(key);
mycommand.ExecuteNonQuery();
DataGrid1.EditItemIndex=-1;
BindGrid();
} public string Getname(int power)
{
if (power==2)
return "超级管理员";
else
{
if (power==1)
return "业务管理员";
else
return "一般管理员" ;
}
} private void Submit1_ServerClick(object sender, System.EventArgs e)
{
SqlCommand mycommand=new SqlCommand("add_admin",myconnect);
mycommand.CommandType=CommandType.StoredProcedure;
mycommand.Parameters.Add("@uid",SqlDbType.VarChar,20).Value=TextBox3.Text;
mycommand.Parameters.Add("@pwd",SqlDbType.VarChar,20).Value=TextBox1.Text;
mycommand.Parameters.Add("@username",SqlDbType.VarChar,20).Value=TextBox9.Text;
mycommand.Parameters.Add("@power",SqlDbType.Int).Value=Select1.Value;
SqlParameter RetVal=mycommand.Parameters.Add("RetVal", SqlDbType.Int);
RetVal.Direction = ParameterDirection.ReturnValue;
//myconnect.Open();
mycommand.ExecuteNonQuery();
if (int.Parse(RetVal.Value.ToString())==1)
{
Response.Write("<script language=javascript>alert('新增成功!');</script>");
BindGrid();
}
else
{
if (int.Parse(RetVal.Value.ToString())==0)
Response.Write("<script language=javascript>alert('此用户名已存在!');</script>");
else
Response.Write("<script language=javascript>alert('新增失败!');</script>");
}
}
}
}
这里最好用!IsPostBack()判断一下
该BIND时才BIND
设个断点跟踪一下,我以前也遇到过类似情况!
int row=DataGrid1.SelectedIndex;
int rows=tb.Tables[tbDgr1].Rows.Count;
if (row<=0) row=rows - 1;
dsDgr1.Tables [ tb ] . Rows [ row ] . Delete ( ) ;
DataGrid1.SelectedIndex= row - 1;
DataGrid1.DataSource=tb;
DataGrid1.DataBind();你说的情况俺有点看不明白。:(
DataGrid1_UpdateCommand 没有得到触发请高手继续回帖马上解决马上给分