我正在使用gridview来显示从数据库中查询的表...
在这个gridview中,我还添加了一个buttonfield和3个模板字段......
当我按下buttonfield时,会获取数据库中的数据,但是 从模板字段插入的手动数据不是..似乎获取了空值。
从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部分抛出什么事件?
谢谢,
答案 0 :(得分:0)
您可以找到添加到该行的控件,然后使用text属性获取它的值。
类似于row.FindControl(<urIdgoeshere>)\\cast it to textBox
的东西然后使用.Text来获取它的值。
GridViewRow row = GridView1.Rows[x];
Response.Write((TextBox)row.FindControl('txtbox1')).Text;
答案 1 :(得分:0)
我正在与之战斗,我曾经使用asp [BoundField]的Cells []代码。 现在我不得不切换到模板字段,因为我需要页脚中的按钮等。 我正在拉我的头发,我使用Ashley建议的相同代码,我得到System.NullReferenceException:对象引用未设置为对象的实例。
我在row命令事件中执行此操作。 从3天开始就是这样:(
编辑: 我的问题的快速解决方案:我已经在页脚上创建了字段ID,并且我没有给我的ItemTemplate提供ID,即我在那里唯一的东西是&lt;%#Eval(&#34;描述&#34)%GT; 看起来没有办法选择这些数据,而没有在后面的代码中提供某种ID。我是愚蠢的,后来没有注意到这个简单的事实。