Repeater 实现点击按钮添加删除行,当数据库没数据的时候,页面加载Repeater默认有一行,
如图:后面有个添加删除按钮可以实现添加一行和删除一行,注意这个添加和删除行不需要和数据库交互,请高手帮忙

解决方案 »

  1.   

    数据源中添加默认数据
    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
            {
                int id = Convert.ToInt32(e.CommandArgument);
                if (e.CommandName == "Delete")
                {
                    }
            }
      

  2.   

    加FooterTemplate,里面加Panel,两个LinkButton,设置Panel的Visible为false,
    若没数据时Visible为true;
    html代码:
              .........
                </ItemTemplate>
                <FooterTemplate>
                    <asp:Panel ID="Panel1" runat="server" Visible="false">
                        <asp:LinkButton ID="LinkButton1" runat="server" CommandName="Add">添加</asp:LinkButton>
                        <asp:LinkButton ID="LinkButton2" runat="server" CommandName="Delete">删除</asp:LinkButton>
                    </asp:Panel>
                </FooterTemplate>
            </asp:Repeater>
    c#代码
        protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Footer)
            {
                if (Repeater1.Items.Count == 0)//没数据时Panel1的Visible为true
                {
                    Panel pn = (Panel)e.Item.FindControl("Panel1");
                    pn.Visible = true;
                }
            }
        }
        protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if (e.CommandName == "Add")
            {
                 //..........
            }
            else if (e.CommandName == "Delete")
            {
                 //.........   
            }
        }
      

  3.   

    里面就是数据处理,删除嘛
    最好加个,这样把
       if (Repeater1.Items[e.Item.ItemIndex].ItemType == ListItemType.Item || Repeater1.Items[e.Item.ItemIndex].ItemType == ListItemType.AlternatingItem)
                {
    ...}
      

  4.   

    如上几位高手所说,
    在delete处理里面得到那一行的index,然后从repeater的数据源删除那行数据,再绑定。