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是一个对象数据源

gridview上的编辑模式显示要编辑的记录为空值

尝试在绑定gv之前清除gv行:

protected void BindGrid()
{
    gvProfiles.DataSource = new UserBO().GetAllUsers();
    gvProfiles.Rows.Clear();
    gvProfiles.DataBind();
}