前台代码:
<asp:Label ID="lbl" Visible="True" Runat="server">
<%#DataBinder.Eval(Container.DataItem,"msgid")%>
</asp:Label>后台代码.
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();
}
这个值为什么获得不到?前台将Label显示,可以看见值!

解决方案 »

  1.   

    看不清你写的东西.你是要把获得的值放在LABEL显示还是要把LABEL的值传到数据库!如果是前者的话.应该是label.value="string".
      

  2.   

    看看是不是前台后台的执行过程不对,要是先执行private void Rp2_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
    然后才帮定lable当然就查不到了
      

  3.   

    在Label已经显示了!是要把它放在后台的Sql语句中,做为Where的条件!
      

  4.   

    string SMsgId;sMsgId = ((Label)e.Item.FindControl("lbl")).Text.Trim();
    大小写
      

  5.   

    <asp:Label ID="lbl" Visible="True" Runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"msgid")%>'>
      

  6.   

    PageLoad中的代码呢
    有没有+上!IsPostBack
    估计是直接在load过程赋值了或进行了一些操作导致值丢失
    另外就是看一下是否开启了viewstate
      

  7.   

    文字的位置没有放对吧
    这样写
    <asp:Label ID="lbl" Visible="True" Runat="server" Text="<%#DataBinder.Eval(Container.DataItem,"msgid")%>" ></asp:Label>
      

  8.   

    <asp:Label ID="lbl" Visible="True" Runat="server">
    <%#DataBinder.Eval(Container.DataItem,"msgid")%>
    </asp:Label>那个应该写到text属性里面吧