写在ItemDataBind事件里面
可以用(LinkButton)e.Items[i].FindControl("reply")

解决方案 »

  1.   

    555555555protected void ItemDataBind(Object sender, EventArgs e)
        {
         for (int i = 0; i < repeater1.Items.Count; i++)
          {          LinkButton bb = (LinkButton)e.Items[i].FindControl("reply");
        
          }
        }初学...
    不晓得这样写错了吗?
    但是这个e.里面没有items[]....55555  再请高手帮忙看看..谢谢...
      

  2.   

    就是一个好简单的留言本...前面不是repeater...管理里面要删除回复...我把代码都贴出来好吗?  55555using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
            dlBind();
            admin();
            }    }
        protected void dlBind()
        {
            string strcon = ConfigurationSettings.AppSettings["strcon"];
            int curpage = Convert.ToInt32(this.labpage.Text);
            PagedDataSource ps = new PagedDataSource();
            SqlConnection sqlcon = new SqlConnection(strcon);
            sqlcon.Open();
            string sqlstr = "select * from netbook order by id desc";
            SqlDataAdapter myda = new SqlDataAdapter(sqlstr,strcon);
            DataSet myds = new DataSet();
            myda.Fill(myds, "netbook");
            ps.DataSource = myds.Tables["netbook"].DefaultView;
            ps.AllowPaging = true;
            ps.PageSize = 3;
            ps.CurrentPageIndex = curpage - 1;
            this.perv.Enabled = true;
            this.next.Enabled = true;
            this.frist.Enabled = true;
            this.last.Enabled = true;
            
            if (curpage == 1)
            {
                this.frist.Enabled = false;
                this.perv.Enabled = false;
            }
            if (curpage == ps.PageCount)
            {
                this.next.Enabled = false;
                this.last.Enabled = false;
            }
            this.backpage.Text = Convert.ToString(ps.PageCount);
            this.repeater1.DataSource = ps;
            this.repeater1.DataBind();
            sqlcon.Close();
        }
        protected void frist_Click(object sender, EventArgs e)
        {
            this.labpage.Text = "1";
            dlBind();
            admin();
        }
        protected void perv_Click(object sender, EventArgs e)
        {
            this.labpage.Text = Convert.ToString(Convert.ToInt32(this.labpage.Text) - 1);
            dlBind();
            admin();
        }
        protected void next_Click(object sender, EventArgs e)
        {
            this.labpage.Text = Convert.ToString(Convert.ToInt32(this.labpage.Text) + 1);
            dlBind();
            admin();
        }
        protected void last_Click(object sender, EventArgs e)
        {
            this.labpage.Text = this.backpage.Text;
            dlBind();
            admin();
            
        }
        protected void delete_click(object sender, EventArgs e)    {
            string strcon = ConfigurationSettings.AppSettings["strcon"];
            SqlConnection conn = new SqlConnection(strcon);
            conn.Open();
            admin();
            for (int l = 0; l < repeater1.Items.Count; l++)
            {
                HiddenField bb = (HiddenField)repeater1.Items[l].FindControl("HiddenField1");
                SqlCommand com = new SqlCommand("delete from netbook where id="+bb.Value+"",conn);
                com.ExecuteNonQuery();            
            }
            conn.Close();     
            Response.Write("<script>alert('删除成功!')</script>");
            dlBind();
        }
        protected void ItemDataBind(Object sender, EventArgs e)
        {
            for(int l=0;l<)
         for (int i = 0; i < repeater1.Items.Count; i++)
          {          LinkButton bb = (LinkButton)e.Items[i].FindControl("reply");
        
          }
        }    public void admin()
        {
            if (Session["username"] == null)
            {
                login.Text = "登录";
                login.PostBackUrl = "login.aspx";
                for (int i = 0; i < repeater1.Items.Count; i++)
                {
                    Button aa = (Button)repeater1.Items[i].FindControl("delete_but");
                    aa.Visible = false;
                }                                 
            }
            else
            {
                login.Text = "退出登录";
                login.PostBackUrl = "oulogin.aspx";
                for (int i = 0; i < repeater1.Items.Count; i++)
                {
                    LinkButton lk = (LinkButton)repeater1.Items[i].FindControl("reply");
                    Button aa = (Button)repeater1.Items[i].FindControl("delete_but");
                    aa.Text = "删除";                aa.Attributes.Add("onclick", "javascript:return(confirm('确实删除吗?'))");
                    aa.PostBackUrl = "delete.aspx";
                    lk.Text = "回复";
                    for (int l = 0; l < repeater1.Items.Count; l++)
                    {
                        HiddenField bb = (HiddenField)repeater1.Items[l].FindControl("HiddenField1");
                        lk.PostBackUrl = "rely.aspx?cid="+bb.Value;
                    }
                }
            }
        }
    }
      

  3.   

    <asp:Button ID="delete_but" CommandArgument='<%#DataBinder.Eval(Container.DataItem, "id")%>' CommandName="Delete_but" runat="server"></asp:Button>前台CS if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)//单个审核
                {
                    if (e.CommandName == "Delete_but")
                    {
                         操作.....
                    }
                 }
      

  4.   

    就是不能得到唯一的ID.....for一循环整个页面ID都for 了一下..删除就都删除了...5555
      

  5.   

    if (e.CommandName == "Delete_but")
                    {
                         int ID=int.Parse(e.CommandArgument.ToString());
                         操作.....
                    }
      

  6.   

    这个e  打点..为什么后面没有item?  5555
      

  7.   

    protected void repeater1_ItemDataBind(Object sender, EventArgs e)
        {
         for (int i = 0; i < repeater1.Items.Count; i++)
          {          LinkButton bb = (LinkButton)e.Items[i].FindControl("reply");
        
          }
        }这样就有了
      

  8.   

    这样还是不行...但是:这样
     Button aa = (Button)repeater1.Items[i].FindControl("delete_but");就有了...这是什么原因.
      

  9.   

    protected void Repeater1_ItemDataBind(Object sender, EventArgs e)
        {
              
         for (int i = 0; i < repeater1.Items.Count; i++)
          {          LinkButton bb = (LinkButton)repeater1.Items[i].FindControl("delete_but");
        
          }这样才出来... 55555是不是前台有一个HiddenField这个的原因了?
      

  10.   

    (Button)repeater1.Items[i].FindControl
    指定查找repeater1里面的BUtton项
      

  11.   

    <asp:HiddenField ID="HiddenField1" runat="server"  Value='<%#DataBinder.Eval(Container.DataItem, "id")%>' Visible="false" />前台我用一个HiDDenField 存ID号...
    CS中..
    for (int l = 0; l < repeater1.Items.Count; l++)
     {
         HiddenField bb = (HiddenField)repeater1.Items[l].FindControl("HiddenField1");
          lk.PostBackUrl = "rely.aspx?cid="+bb.Value;
          }但是这不是唯一的...就是一页有好多就循环好多..那样.删除或者回复..就找不到要想的ID..删除会都这页都删除掉..
      

  12.   

    不管HiddenField的事
    前面是这样
    protected void ItemDataBind(Object sender, EventArgs e)
        {
         for (int i = 0; i < repeater1.Items.Count; i++)
          {          LinkButton bb = (LinkButton)e.Items[i].FindControl("reply");
        
          }
        }后面是这样  自己对照
    protected void repeater1_ItemDataBind(Object sender, EventArgs e)
        {
         for (int i = 0; i < repeater1.Items.Count; i++)
          {          LinkButton bb = (LinkButton)e.Items[i].FindControl("reply");
        
          }
        }
      

  13.   

    你要点repeater,找到它的属性,按那个闪电图标(表示事件),找到ItemDataBound,双击...........
    双击后会自动跳到后台代码的,然后把填在那里面
      

  14.   

    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            for (int i = 0; i < repeater1.Items.Count; i++)
            {            LinkButton bb = (LinkButton)e.Items[i].FindControl("reply");
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)//单个审核
                {
                    if (e.CommandName == "Delete_but")
                    {
                        string strcon = ConfigurationSettings.AppSettings["strcon"];
                        SqlConnection conn = new SqlConnection(strcon);
                        conn.Open();
                        SqlCommand com = new SqlCommand("delete from netbook where id=" + bb.Value + "", conn);
                        com.ExecuteNonQuery();
                        conn.Close();
                        Response.Write("<script>alert('删除成功!')</script>");
                        dlBind();                }
                }
            }    }错误是:
    源错误: 行 88:         {
    行 89: 
    行 90:             LinkButton bb = (LinkButton)e.Items[i].FindControl("reply");
    行 91:             if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)//单个审核
    行 92:             {
     
    那个e打点还是不出来..
      

  15.   

    .aspx文件
    <asp:Repeater ID="repeater1" runat="server">    
      <ItemTemplate>  
      <asp:Button ID="delete_but" runat="server" CommandName="delete"  CommandArgument= '<%#Eval("id")%>'OnClick="delete_click"></asp:Button>
      </ItemTemplate> 
    .cs文件 Repeater的RowCommand事件中
    if (e.CommandName == "delete")
                    {
                         int ID=int.Parse(e.CommandArgument.ToString());
                         .....
                    }
      

  16.   

    给你说了放在Repeater1_ItemCommandprotected void Repeater1_ItemCommand(object sender, RepeaterItemEventArgs e)
        {
                            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)//单个审核
                {
     for (int i = 0; i < repeater1.Items.Count; i++)
            {
    LinkButton bb = (LinkButton)e.Items[i].FindControl("reply");
    }
                    if (e.CommandName == "Delete_but")
                    {
                        string strcon = ConfigurationSettings.AppSettings["strcon"];
                        SqlConnection conn = new SqlConnection(strcon);
                        conn.Open();
                        SqlCommand com = new SqlCommand("delete from netbook where id=" + bb.Value + "", conn);
                        com.ExecuteNonQuery();
                        conn.Close();
                        Response.Write("<script>alert('删除成功!')</script>");
                        dlBind();                }
                }
                }
      

  17.   

    你编译一下代码,把错误show出来
      

  18.   

    这样就简单了,循环做什么 单击一个删一个protected void Repeater1_ItemCommand(object sender, RepeaterItemEventArgs e)
        {
           if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
            if (e.CommandName == "Delete_but")
                    {
                        int bb=int.Parse(e.CommandArgument.ToString());
                        string strcon = ConfigurationSettings.AppSettings["strcon"];
                        SqlConnection conn = new SqlConnection(strcon);
                        conn.Open();
                        SqlCommand com = new SqlCommand("delete from netbook where id=" + bb+ "", conn);
                        com.ExecuteNonQuery();
                        conn.Close();
                        Response.Write("<script>alert('删除成功!')</script>");
                        dlBind();
                    }
                }    }
      

  19.   

    protected void Repeater1_ItemDataBound(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
        {
            LinkButton bb = (LinkButton)e.Item.FindControl("reply");
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)//单个审核
            {
                if (e.CommandName == "Delete_but")
                {
                    string strcon = ConfigurationSettings.AppSettings["strcon"];
                    SqlConnection conn = new SqlConnection(strcon);
                    conn.Open();
                    SqlCommand com = new SqlCommand("delete from netbook where id=" + bb.Text + "", conn);
                    com.ExecuteNonQuery();
                    conn.Close();
                    Response.Write("<script>alert('删除成功!')</script>");
                    dlBind();            }
            }
        }这样e 打点才出来..不过ID...还是删除不了...
      

  20.   

    protected void Repeater1_ItemCommand(object sender, RepeaterItemEventArgs e)
        {
           if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
            if (e.CommandName == "Delete_but")
                    {
                        int bb=int.Parse(e.CommandArgument.ToString());
                        string strcon = ConfigurationSettings.AppSettings["strcon"];
                        SqlConnection conn = new SqlConnection(strcon);
                        conn.Open();
                        SqlCommand com = new SqlCommand("delete from netbook where id=" + bb+ "", conn);
                        com.ExecuteNonQuery();
                        conn.Close();
                        Response.Write("<script>alert('删除成功!')</script>");
                        dlBind();
                    }
                }    }
    前台
    <asp:Button ID="delete_but" CommandArgument='<%#DataBinder.Eval(Container.DataItem, "id")%>' CommandName="Delete_but" runat="server"></asp:Button>照着我的搞 成功了再给你解释
      

  21.   

    编译器错误信息: CS0117: “System.Web.UI.WebControls.RepeaterItemEventArgs”并不包含“CommandName”的定义源错误: 行 86:         if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    行 87:         {
    行 88:             if (e.CommandName == "Delete_but")
    行 89:             {
    行 90:                 int bb = int.Parse(e.CommandArgument.ToString());
     
      

  22.   

    能台代码是: 
    <asp:Button ID="delete_but" CommandArgument='<%#DataBinder.Eval(Container.DataItem, "id")%>' CommandName="Delete_but" runat="server"></asp:Button>
      

  23.   

    protected void Page_Load(object sender, EventArgs e)
            {
               if (!Page.IsPostBack){
                Dispaly();}
            }
            private void Dispaly()
            {
                Repeater1.DataSource= sql记录
                Repeater1.DataBind();
            }        protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    if (e.CommandName == "Delete")
                    {
                        LinkButton delete = (LinkButton)e.Item.FindControl("delete");
                        delete.Attributes.Add("OnClick", "if(!confirm(\"确定删除么?\")) return false;");
                        int bb=int.Parse(e.CommandArgument.ToString()));
                         操作
    Dispaly();
                    }
                }
            }
    前台
    <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand" OnItemDataBound="Repeater1_ItemDataBound">
            <HeaderTemplate>
            <table>
            </HeaderTemplate>
            
            <ItemTemplate>
            <tr>
            <td><%#DataBinder.Eval(Container.DataItem,"id") %></td>
            <td><%#DataBinder.Eval(Container.DataItem,"name") %></td>
            <td><%#DataBinder.Eval(Container.DataItem,"age") %></td>
            <td><%#DataBinder.Eval(Container.DataItem,"dtime") %></td>
            <td><%#DataBinder.Eval(Container.DataItem,"Url") %></td>
            <td><asp:LinkButton ID="delete" runat="server" Text="删除" CommandName="Delete" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"id") %>'></asp:LinkButton></td>
            </tr>
            
            </ItemTemplate>
            
            <FooterTemplate>
            </table>
            </FooterTemplate>
            
            </asp:Repeater>
      

  24.   

    编译器错误信息: CS0117: “System.Web.UI.WebControls.RepeaterItemEventArgs”并不包含“CommandName”的定义源错误: 行 87:        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    行 88:             {
    行 89:                 if (e.CommandName == "Delete")
    行 90:                 {
    行 91:                     LinkButton delete = (LinkButton)e.Item.FindControl("delete");
     源文件: f:\longbiao\net\book1\Default.aspx.cs    行: 89 一样的错误...555555