2

我正在使用 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 部分抛出什么事件?

谢谢,

4

2 回答 2

0

我正在与之抗争,我曾经将 Cells[] 代码与 asp BoundField 一起使用。现在我不得不切换到模板字段,因为我需要页脚中的按钮等。我正在拔头发,我使用了 Ashley 建议的相同代码,我得到 System.NullReferenceException: Object reference not set to an instance of an object。

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

编辑:我的问题的快速解决方案:我在页脚上创建了给定字段的 ID,但我没有给我的 ItemTemplate 和 ID,即我在那里唯一的东西是 <%# Eval("Description")% > 似乎没有办法选择这些数据而不在后面的代码中给它某种 ID。我很愚蠢,后来没有注意到这个简单的事实。

于 2013-01-30T19:11:06.877 回答
0

您可以找到添加到该行的控件,然后使用 text 属性获取它的值。类似于row.FindControl(<urIdgoeshere>)\\cast it to textBox然后使用 .Text 来获取它的值。

GridViewRow row = GridView1.Rows[x];

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

于 2011-07-26T07:50:13.580 回答