获取隐藏的网格视图列,选定行上的单元格值 c#
Get a hidden grid view column, cell value on a selected row c#
我的网格视图中有一个客户 ID 列,我希望它保持隐藏或不可编辑状态。
当 gridview 的行被更新时,我想检查一个字段的值是否被更改为某个值,以便我可以在我的数据库中添加时间戳。
这是我的函数的副本。
protected void gridStock_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
String anotherUpdatedItem = e.NewValues[8].ToString();
string oldValue = e.OldValues[7].ToString();
string idValue = gridStock.DataKeys[0].Values["StockID"].ToString();
anotherUpdatedItem.ToString();
if (anotherUpdatedItem == "True" && oldValue != "True")
{
string date = DateTime.Today.ToString();
String str = "UPDATE Stock SET [DateSold]=@todaysDate WHERE StockID=@id";
SqlCommand xp = new SqlCommand(str, vid);
xp.Parameters.Add("@todaysDate", SqlDbType.Date).Value = date;
xp.Parameters.Add("@id", SqlDbType.Int).Value = idValue;
vid.Open();
xp.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = xp;
DataSet ds = new DataSet();
da.Fill(ds, "ClientID");
vid.Close();
}
}
如您所见,我已将数据键添加到 gridview,这也有效,但它仅检索索引 0 点。我需要获取已单击的行的 stockid 值,以便能够通过我的 sql 查询传递它。
有人能帮忙吗?
要使此方法起作用,您需要使用所选行的索引。
string idValue = gridStock.DataKeys[gridStock.SelectedIndex].Values["StockID"].ToString();
您应该使用当前行的索引获取 Datakey 值。为此,您可以使用 e.RowIndex
。这是您需要的:
string idValue = gridStock.DataKeys[e.RowIndex].Values["StockID"].ToString();
我的网格视图中有一个客户 ID 列,我希望它保持隐藏或不可编辑状态。
当 gridview 的行被更新时,我想检查一个字段的值是否被更改为某个值,以便我可以在我的数据库中添加时间戳。
这是我的函数的副本。
protected void gridStock_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
String anotherUpdatedItem = e.NewValues[8].ToString();
string oldValue = e.OldValues[7].ToString();
string idValue = gridStock.DataKeys[0].Values["StockID"].ToString();
anotherUpdatedItem.ToString();
if (anotherUpdatedItem == "True" && oldValue != "True")
{
string date = DateTime.Today.ToString();
String str = "UPDATE Stock SET [DateSold]=@todaysDate WHERE StockID=@id";
SqlCommand xp = new SqlCommand(str, vid);
xp.Parameters.Add("@todaysDate", SqlDbType.Date).Value = date;
xp.Parameters.Add("@id", SqlDbType.Int).Value = idValue;
vid.Open();
xp.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = xp;
DataSet ds = new DataSet();
da.Fill(ds, "ClientID");
vid.Close();
}
}
如您所见,我已将数据键添加到 gridview,这也有效,但它仅检索索引 0 点。我需要获取已单击的行的 stockid 值,以便能够通过我的 sql 查询传递它。
有人能帮忙吗?
要使此方法起作用,您需要使用所选行的索引。
string idValue = gridStock.DataKeys[gridStock.SelectedIndex].Values["StockID"].ToString();
您应该使用当前行的索引获取 Datakey 值。为此,您可以使用 e.RowIndex
。这是您需要的:
string idValue = gridStock.DataKeys[e.RowIndex].Values["StockID"].ToString();