我正在gridview
使用 webforms 上的 asp.net,并在 TemplateField 中使用按钮视图、编辑和更新Gridview RowCommand
的事件方法。GridView OnRowCommand
if (e.CommandName == "EditContract")
{
GridViewRow row = (GridViewRow)(((Button)e.CommandSource).NamingContainer);
int SerialNo = (int)gvContract.DataKeys[row.RowIndex].Value;
int rowIndex = ((GridViewRow)((Button)e.CommandSource).NamingContainer).RowIndex;
gvContract.SelectRow(rowIndex);
using (SqlCommand cmd = new SqlCommand("spContractEdit", myObj.DbConnect()))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@RoleName", SqlDbType.Char).Value = Session["RoleName"];
cmd.Parameters.Add("@UnitName", SqlDbType.Char).Value = Session["UnitName"];
cmd.Parameters.Add("@ContrSerialNo", SqlDbType.Int).Value = SerialNo;
dAdapter = new SqlDataAdapter(cmd);
DataTable DtContract = new DataTable();
dAdapter.Fill(DtContract);
}
if (e.CommandName == "UpdateContract")
{
lblMessage.Text = "";
lblFile.Text = "";
GridViewRow row = (GridViewRow)(((Button)e.CommandSource).NamingContainer);
int SerialNo = (int)gvContract.DataKeys[row.RowIndex].Value;
using (SqlCommand cmd = new SqlCommand("spContractUpdate", myObj.DbConnect()))
{
cmd.CommandType = CommandType.StoredProcedure;
}
}
页面第一次加载时此代码运行良好,但之后出现 2 个问题。即 1. 当页面第一次加载时它正在编辑和更新数据,但是当我尝试编辑同一行或任何其他行时它不会。我知道这是因为我在 Page_Load 事件上定义了 !Page.IsPostback 方法,但我不知道如何解决这种情况。2. 问题是如何限制gridview 行只更新其行被选中的数据?
请建议我一个解决方案。