利用TextBox接受用户输入,按钮触发事件在数据库中搜索到一条数据后,在页面中用GridView显示,利用更新按钮修改后 可以更新回数据库,但是页面刷新后无法显示更新后的数据. 望高手赐教public partial class admin_Users_Update : System.Web.UI.Page
{
private string tableName = "users";//表名
private NameSearch ns = new NameSearch();//搜索信息类
protected void Page_Load(object sender, EventArgs e)
{ } /// <summary>
/// 点击按钮事件,出发搜索功能,将
/// 搜索结果绑定到GridView上
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
//搜索信息
this.GridView1.DataSource = ns.getData(this.TextBox1.Text, tableName).Tables[tableName];
this.DataBind();
} /// <summary>
/// GridView按钮编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
this.GridView1.DataSource=ns.getData(this.TextBox1.Text,tableName).Tables[tableName];
this.GridView1.EditIndex = e.NewEditIndex;
this.DataBind();
}
/// <summary>
/// GridView按钮取消事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
this.GridView1.DataSource = ns.getData(this.TextBox1.Text, tableName).Tables[tableName];
this.GridView1.EditIndex = -1;
this.DataBind();
} /// <summary>
/// GridView更新事件,用于接受用户修改,更新数据库信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
this.GridView1.DataSource = ns.getData(this.TextBox1.Text, tableName).Tables[tableName];
int index = e.RowIndex;
//获得需要修改的行信息
int uid=Convert.ToInt32(this.GridView1.Rows[index].Cells[0].Text.ToString().Trim());
string uname = ((TextBox)this.GridView1.Rows[index].Cells[1].Controls[0]).Text.ToString().Trim();
string upass = ((TextBox)this.GridView1.Rows[index].Cells[2].Controls[0]).Text.ToString().Trim();
string email = ((TextBox)this.GridView1.Rows[index].Cells[3].Controls[0]).Text.ToString().Trim(); if (isEmail(email))//验证email地址格式是否合法
{
Users u = new Users();//创建表对象
//给Users对象赋值
u.Uid = uid;
u.Uname = uname;
u.Upass = upass;
u.Email = email;
//更新信息
Update update = new Update();
if (update.ToUpdate(u, tableName))//update方法检验数据是否更新成功
{
string strScript = "window.location.href='Delete.aspx';";
strScript += "window.location.replace('Delete.aspx');";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "updateOK", "<script language='javascript'>alert('更新成功');"+script+"</script>");
}
else
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "updateOK", "<script language='javascript'>alert('更新失败')</script>");
}
}
else
{
Response.Write("<script language='javascript'>alert('请输入邮件地址的正确格式!如:[email protected]')</script>");
}
} /// <summary>
/// isEmail方法验证用户修改的Email地址是否合法
/// </summary>
/// <param name="inputEmail"></param>
/// <returns> 返回bool类型</returns>
public bool isEmail(string inputEmail)
{
string strRegex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
Regex re = new Regex(strRegex);
if (re.IsMatch(inputEmail))//格式正确返回真
{
return true;
}
else//不正确返回假
{
return false;
}
} protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
}
}
{
private string tableName = "users";//表名
private NameSearch ns = new NameSearch();//搜索信息类
protected void Page_Load(object sender, EventArgs e)
{ } /// <summary>
/// 点击按钮事件,出发搜索功能,将
/// 搜索结果绑定到GridView上
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
//搜索信息
this.GridView1.DataSource = ns.getData(this.TextBox1.Text, tableName).Tables[tableName];
this.DataBind();
} /// <summary>
/// GridView按钮编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
this.GridView1.DataSource=ns.getData(this.TextBox1.Text,tableName).Tables[tableName];
this.GridView1.EditIndex = e.NewEditIndex;
this.DataBind();
}
/// <summary>
/// GridView按钮取消事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
this.GridView1.DataSource = ns.getData(this.TextBox1.Text, tableName).Tables[tableName];
this.GridView1.EditIndex = -1;
this.DataBind();
} /// <summary>
/// GridView更新事件,用于接受用户修改,更新数据库信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
this.GridView1.DataSource = ns.getData(this.TextBox1.Text, tableName).Tables[tableName];
int index = e.RowIndex;
//获得需要修改的行信息
int uid=Convert.ToInt32(this.GridView1.Rows[index].Cells[0].Text.ToString().Trim());
string uname = ((TextBox)this.GridView1.Rows[index].Cells[1].Controls[0]).Text.ToString().Trim();
string upass = ((TextBox)this.GridView1.Rows[index].Cells[2].Controls[0]).Text.ToString().Trim();
string email = ((TextBox)this.GridView1.Rows[index].Cells[3].Controls[0]).Text.ToString().Trim(); if (isEmail(email))//验证email地址格式是否合法
{
Users u = new Users();//创建表对象
//给Users对象赋值
u.Uid = uid;
u.Uname = uname;
u.Upass = upass;
u.Email = email;
//更新信息
Update update = new Update();
if (update.ToUpdate(u, tableName))//update方法检验数据是否更新成功
{
string strScript = "window.location.href='Delete.aspx';";
strScript += "window.location.replace('Delete.aspx');";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "updateOK", "<script language='javascript'>alert('更新成功');"+script+"</script>");
}
else
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "updateOK", "<script language='javascript'>alert('更新失败')</script>");
}
}
else
{
Response.Write("<script language='javascript'>alert('请输入邮件地址的正确格式!如:[email protected]')</script>");
}
} /// <summary>
/// isEmail方法验证用户修改的Email地址是否合法
/// </summary>
/// <param name="inputEmail"></param>
/// <returns> 返回bool类型</returns>
public bool isEmail(string inputEmail)
{
string strRegex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
Regex re = new Regex(strRegex);
if (re.IsMatch(inputEmail))//格式正确返回真
{
return true;
}
else//不正确返回假
{
return false;
}
} protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
}
}
{
this.GridView1.DataSource = ns.getData(this.TextBox1.Text, tableName).Tables[tableName]; //这句是什么意思?放这里是不是不太合适,我觉得应该等修改完后再绑定
int index = e.RowIndex;
//获得需要修改的行信息
int uid=Convert.ToInt32(this.GridView1.Rows[index].Cells[0].Text.ToString().Trim());
string uname = ((TextBox)this.GridView1.Rows[index].Cells[1].Controls[0]).Text.ToString().Trim();
string upass = ((TextBox)this.GridView1.Rows[index].Cells[2].Controls[0]).Text.ToString().Trim();
string email = ((TextBox)this.GridView1.Rows[index].Cells[3].Controls[0]).Text.ToString().Trim(); if (isEmail(email))//验证email地址格式是否合法
{
Users u = new Users();//创建表对象
//给Users对象赋值
u.Uid = uid;
u.Uname = uname;
u.Upass = upass;
u.Email = email;
//更新信息
Update update = new Update();
if (update.ToUpdate(u, tableName))//update方法检验数据是否更新成功
{
string strScript = "window.location.href='Delete.aspx';";
strScript += "window.location.replace('Delete.aspx');";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "updateOK", " <script language='javascript'>alert('更新成功');"+script+" </script>");
//this.GridView1.DataSource = ns.getData(this.TextBox1.Text, tableName).Tables[tableName]; //这句放这里才对,是这样吗?好像是用的Linq,对这个不熟
}
else
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "updateOK", " <script language='javascript'>alert('更新失败') </script>");
}
}
else
{
Response.Write(" <script language='javascript'>alert('请输入邮件地址的正确格式!如:[email protected]') </script>");
}
}