Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从templatefields gridview-C获取值#_C#_Gridview_Templatefield_Buttonfield - Fatal编程技术网

C# 从templatefields gridview-C获取值#

C# 从templatefields gridview-C获取值#,c#,gridview,templatefield,buttonfield,C#,Gridview,Templatefield,Buttonfield,我正在使用gridview显示从数据库查询的表 在这个gridview中,我还添加了一个按钮字段和3个模板字段 当我按下按钮字段时,从数据库中获取数据,但是 从模板字段插入的手动数据无效。。似乎获取了空值 从xml文件中,我触发以下事件: OnRowCommand="GridView1_SelectedIndexChanged1" 并使用以下方法捕获该事件: protected void GridView1_SelectedIndexChanged1(object sender, GridVi

我正在使用gridview显示从数据库查询的表

在这个gridview中,我还添加了一个按钮字段和3个模板字段

当我按下按钮字段时,从数据库中获取数据,但是 从模板字段插入的手动数据无效。。似乎获取了空值

从xml文件中,我触发以下事件:

OnRowCommand="GridView1_SelectedIndexChanged1"
并使用以下方法捕获该事件:

protected void GridView1_SelectedIndexChanged1(object sender, GridViewCommandEventArgs e)
        {
            int x = Convert.ToInt32(e.CommandArgument);
            GridView1.SelectRow(x);

            GridViewRow row = GridView1.Rows[x];

            Response.Write(row.Cells[0].Text + "\t");
            Response.Write(row.Cells[1].Text + "\t");
            Response.Write(row.Cells[2].Text + "\t");
            Response.Write(row.Cells[3].Text + "\t");
            Response.Write(row.Cells[4].Text + "\t");
            Response.Write(row.Cells[5].Text + "\t");
            Response.Write(row.Cells[6].Text + "\t");
            Response.Write(row.Cells[7].Text + "\t");
            Response.Write(row.Cells[8].Text + "\t");  
           }
关于如何从模板字段中获取值,有什么想法吗?我是否需要捕获另一个事件而不是GridViewCommandEventArgs?如果是这样,我应该从xml部分抛出什么事件


谢谢,

您可以找到添加到行中的控件u,然后使用text属性获取其值。 类似于
row.FindControl()\\将其强制转换为文本框
,然后使用.Text获取其值

GridViewRow row=GridView1.Rows[x]


Response.Write((TextBox)row.FindControl('txtbox1')).Text

您可以找到添加到行中的控件u,然后使用text属性获取其值。 类似于
row.FindControl()\\将其强制转换为文本框
,然后使用.Text获取其值

GridViewRow row=GridView1.Rows[x]


Response.Write((TextBox)row.FindControl('txtbox1')).Text

我正在使用相同的代码进行战斗,我使用了单元格[]代码与asp BoundField。 现在我必须切换到模板字段,因为我需要在页脚中添加按钮等。 我正在竭尽全力,我使用了Ashley建议的相同代码,得到System.NullReferenceException:Object reference未设置为对象的实例

我在row命令事件中执行此操作。 3天以来一直如此:(

编辑: 我的问题的快速解决方案:我已经在页脚上创建了ID given字段,但是我没有给我的ItemTemplate提供和ID,也就是说,我在那里唯一的东西就是
如果不在代码隐藏中为该数据提供某种ID,似乎无法选择该数据。我很愚蠢,后来没有注意到这个简单的事实。

我正在与同样的问题作斗争,我曾经将Cells[]代码与asp BoundField一起使用。 现在我必须切换到模板字段,因为我需要在页脚中添加按钮等。 我正在竭尽全力,我使用了Ashley建议的相同代码,得到System.NullReferenceException:Object reference未设置为对象的实例

我在row命令事件中执行此操作。 3天以来一直如此:(

编辑: 我的问题的快速解决方案:我已经在页脚上创建了ID given字段,但是我没有给我的ItemTemplate提供和ID,也就是说,我在那里唯一的东西就是
如果不在代码隐藏中为数据提供某种ID,似乎无法选择此数据。我很愚蠢,后来没有注意到这个简单的事实。

我做了一些与此相关的事情,但它仍然无法工作:TextBox my=((TextBox)row.FindControl(“numTC”);Response.Write(my.Text);它返回一个空字符串…我认为当我按下buttonfield时,页面会重新加载,模板字段中输入的所有数据都会被清除..可能问题是,只要按下edit按钮,所有templatefields都会被清除,并且事件会被空templatefields触发?您是否已在页面上启用viewstate?是否在页面加载时重新绑定gridview?我已经做了一些类似的事情,但它仍然无法工作:TextBox my=((TextBox)row.FindControl(“numTC”);Response.Write(my.Text);它返回一个空字符串…我认为当我按下buttonfield时,页面会重新加载,模板字段中输入的所有数据都会被清除..可能问题是,只要按下edit按钮,所有templatefields都会被清除,并且事件会被空templatefields触发?是否已在页面上启用viewstate?是否在页面加载时重新绑定gridview?请显示网格标记和页面加载事件。请显示网格标记和页面加载事件。