日期:2014-05-19  浏览次数:20438 次

关于参数传递问题!已经第四个帖子了!高手帮忙!难道就解决不了吗?急啊!所有奉上!
这是前台
<%#GetData(DataBinder.Eval(Container.DataItem, "msgid ").ToString())%>
这是后台
string   sMsgId;
private   void   Rp2_ItemCommand(object   source,   System.Web.UI.WebControls.RepeaterCommandEventArgs   e)
{
sMsgId   =   ((Label)e.Item.FindControl( "lbl ")).Text.Trim();
if(e.CommandName== "delete ")
{
string   strSQL   =   "delete     from   msgtable   where   msgid= ' "+this.sMsgId+ " ' ";
SqlCommand   com=new   SqlCommand(strSQL,MyConnection);
MyConnection.Open();
com.ExecuteNonQuery();
MyConnection.Close();
}
this.databindRp2();
}
说明:(msgid是数据库的值!sMsgId是后台声明的string;)

这个值为什么获得不到?前台将Label能显示这个值!但是后台为什么sMsgId获得不到?
msgid已经提前绑定到!

------解决方案--------------------
你先看看sMsgId 的值
e.Item.FindControl( "lbl ")找到的是不是 <%#GetData(DataBinder.Eval(Container.DataItem, "msgid ").ToString())%> 对应的控件

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070212

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------
sMsgId = ((Label)e.Item.FindControl( "lbl ")).Text.Trim();

你想一下,你是要敢该列对应的数据库里的ID还是控件的ID,

你下面做的是删除,应该要取该列对应数据库里的ID吧

是不是 DataGrid1.DataKeys[e.Item.ItemIndex].Tostring();这样