2013-02-13 80 views
0

我有一个GridView绑定在网格内。我试图在OnRowUpdating被触发时获取绑定字段的值。但是当我尝试读取新值时,结果总是空的。Gridview的值总是空的

这是我使用的指令:

protected void MyGridView_OnRowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    string id = MyGridView.Rows[e.RowIndex].Cells[3].Text; 
    DataBind(); 
} 
+0

它给出了一个错误 – NetStarter 2013-02-13 13:14:40

+1

卡米拉可以绑定数据中的任何地方的数据......很难说只发生了一个事件,你正在显示..例如'MyGridView.DataBind();'尝试添加那 – MethodMan 2013-02-13 13:15:49

+0

是否有一个'OnRowUpdated'方法可以订阅并运行代码?我的理解是,在执行OnRowUpdating之前,GridView并未更新,因此您尝试访问的行可能不在网格中。 – 2013-02-13 13:16:50

回答

0

也许我错了,因为我没有使用GridView控件了一段时间,但你不应该被访问NewValues收集e

这就是GridView的美妙之处:它可以跟踪旧值与新值,并且方便地让它们可供您使用,而无需您四处寻找它们。

string id = (string) e.NewValues["whatever"]; 
+0

我爱你安,它的工作原理! !谢谢:) – Camilla 2013-02-13 13:24:23

+0

@Camilla你很受欢迎! – 2013-02-13 13:25:43

0
TextBox sampleTextBox=((TextBox)MyGridView.Rows[e.RowIndex].FindControl("CostTextBox")); 
string data=sampleTextBox.Text; 

试试这个这个,在这里CostTextBox是你给了网格控件中的控件的ID。