帮我看看这段代码有什么问题
一个GridView,在GridView的更新事件下,我隐藏GridView,显示一个FormView,显示内容的条件是GridView的当前行ID,然后FormView里有一个删除按钮,我在这下面输入msgID,为什么没反应呢?输出一串字符串是可以的。
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
msgID = GridView1.DataKeys[e.RowIndex].Values[0].ToString();
FormView1.Visible = true;
GridView1.Visible = false;
db.RunSQL("select * from message where msgID='" + msgID + "'", ref ds, "msg");
FormView1.DataSource = ds.Tables["msg"].DefaultView;
FormView1.DataBind();
}
protected void btnDelete_Click(object sender, EventArgs e)
{
Response.Write(msgID);
Response.Write("aaaaaaaa");
}
------解决方案--------------------不是没反应,是msgID为空了,使用静态变量或者viewstate来存储msgID。
------解决方案--------------------http://www.blueshop.com.tw/board/show.asp?subcde=BRD20070923191343HDH&fumcde=FUM20041006161839LRJ
------解决方案--------------------你的代码msgID 生命周期只限于GridView1_RowUpdating中~
------解决方案--------------------因为btnDelete_Click事件是一个服务器事件,在调用它之前页面会重新加载,在加载的时候msgID又回到了默认值状态null
所以Response.Write(msgID); 看不出输出结果;如果想看到的话,建议你用session或viewstate把它存起来,然后再从里面读就可以了