如何从网格视图更新事件中的网格视图编辑事件中获取保存在字符串中的值

本文关键字:事件 视图 网格 保存 存在 字符串 获取 更新 编辑 | 更新日期: 2023-09-27 18:26:45

我有一个网格视图编辑事件:

string name = GridView1.Rows[e.NewEditIndex].Cells[1].Text;
string subname = GridView1.Rows[e.NewEditIndex].Cells[2].Text;

我想从行更新事件网格视图中的变量中获取这些值,但我不知道如何访问它们。

感谢

如何从网格视图更新事件中的网格视图编辑事件中获取保存在字符串中的值

使用RowIndex属性

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{    
    GridViewRow row = GridView1.Rows[e.RowIndex];
    string name     = row.Cells[1].Text;
    string subname  = row.Cells[2].Text;
}

要获取更新行的旧值/新值,还可以使用GridViewUpdateEventArgs.OldValuesGridViewUpdateEventArgs.NewValues Dictionaries

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{    
    string oldName     = e.OldValues["Name"]; 
    string oldSubname  = e.OldValues["SubName"];
    string newName     = e.NewValues["Name"];
    string newSubname  = e.NewValues["SubName"];
}

仅检测更改的值(未测试)

var changed = new Dictionary<Object, Object>();
foreach (DictionaryEntry entry in e.NewValues)
{
    if (e.OldValues[entry.Key] != entry.Value)
    {
        changed.Add(entry.Key, entry.Value);
    }
}

或使用LINQ:

changed = e.NewValues.Cast<DictionaryEntry>()
          .Where(entry => entry.Value != e.OldValues[entry.Key])
          .ToDictionary(entry => entry.Key, entry => entry.Value);

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowupdating.aspx

您可以使用以下代码:

protected void Page_Load(对象发送方,EventArgs e){//名称是屏幕上显示的字符串,名称是使用的变量。//Subame是显示在屏幕上的字符串,subname是使用的变量。

    Response.Write("The Name"+ name );
    Response.Write("The Subname" + subname);
}