【问题标题】:edit mode on gridview showing record to be edited with empty valuesgridview 上的编辑模式显示要使用空值编辑的记录
【发布时间】:2014-05-18 19:41:02
【问题描述】:

我有一个带有 sql 表记录的 gridview。我已经在 3 层架构中设置了网页,这样当我选择从 gridview 编辑特定记录时,它会给我一个 formview,其中填充了我在 gridview 中选择的记录的详细信息。当我在更改后单击更新链接按钮formview 上的一些细节,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 是一个对象数据源。

【问题讨论】:

    标签: c# asp.net sql gridview


    【解决方案1】:

    尝试在数据绑定之前清除 gv 行,如下所示:

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

    【讨论】:

    • 感谢您的回复,但 gvProfiles.Rows 集合不包含 Clear 的定义,并且找不到扩展方法 Clear()。
    猜你喜欢
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    相关资源
    最近更新 更多