gridview上的编辑模式显示要编辑的记录为空值
本文关键字:编辑 记录 空值 模式 gridview 显示 | 更新日期: 2023-09-27 18:03:51
我有一个gridview与记录从一个sql表。我已经在3层架构中设置了网页,这样当我选择从gridview编辑特定的记录时,它会给我一个表单视图,其中填充了我在gridview中选择的记录的详细信息。当我在更改表单视图上的一些详细信息后单击更新链接按钮时,gridview显示所选行的空白记录。我需要这行在gridview有数据。
请帮助。
我的代码在后面。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindGrid();
fvProfiles.Visible = false;
}
}
protected void BindGrid()
{
gvProfiles.DataSource = new UserBO().GetAllUsers();
gvProfiles.DataBind();
}
protected void ShowGrid()
{
fvProfiles.Visible = false;
gvProfiles.Visible = true;
btnAdd.Visible = true;
}
protected void HideGrid()
{
fvProfiles.Visible = true;
gvProfiles.Visible = false;
btnAdd.Visible = false;
}
protected void btnAdd_Click(object sender, EventArgs e)
{
HideGrid();
fvProfiles.ChangeMode(FormViewMode.Insert);
}
protected void InsertButton_Click(object sender, EventArgs e)
{
ShowGrid();
}
protected void InsertCancelButton_Click(object sender, EventArgs e)
{
ShowGrid();
}
protected void gvProfiles_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName =="Edit")
{
gvProfiles.Visible = false;
fvProfiles.Visible = true;
btnAdd.Visible = false;
fvProfiles.ChangeMode(FormViewMode.Edit);
odsProfiles.SelectParameters["UserId"].DefaultValue = e.CommandArgument.ToString();
odsProfiles.DataBind();
}
if (e.CommandName == "LogicalDelete")
{
int i = Convert.ToInt32(e.CommandArgument);
//call the userBO method to logically delete the record.
//new UserBO().DeleteUser(i);
}
if (e.CommandName == "Delete")
{
int i = Convert.ToInt32(e.CommandArgument);
//call the userBO method to delete the record.
new UserBO().DeleteUser(i);
}
}
protected void gvProfiles_RowEditing(object sender, GridViewEditEventArgs e)
{
BindGrid();
}
protected void UpdateButton_Click(object sender, EventArgs e)
{
ShowGrid();
}
protected void UpdateCancelButton_Click(object sender, EventArgs e)
{
ShowGrid();
}
protected void gvProfiles_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
BindGrid();
}
}
odsprofiles
是一个对象数据源
尝试在绑定gv之前清除gv行:
protected void BindGrid()
{
gvProfiles.DataSource = new UserBO().GetAllUsers();
gvProfiles.Rows.Clear();
gvProfiles.DataBind();
}