【发布时间】: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 是一个对象数据源。
【问题讨论】: