用repater控件绑定了员工信息我想实现当点击一个按钮是能够对repater绑定后的数据进行编辑不知道如何实现!

解决方案 »

  1.   

    可以是可以,但是我推荐你用listview或者gridview,里面有edit事件。你这个可以放一个按钮,在item里放一个panel,先隐藏,点击修改按钮的时候就将原来的隐藏,编辑的显示
      

  2.   

    http://www.cnblogs.com/treeyh/archive/2008/01/10/1034080.htmlhttp://blog.zjol.com.cn/user2/10707/archives/2007/112725.shtmlhttp://topic.csdn.net/u/20080610/14/c36c9703-0843-4dff-96dd-07796a3441aa.html?873563834http://topic.csdn.net/u/20080718/11/4c81cbdc-8795-4deb-8467-bb79bddf91b3.htmlhttp://caiyangliu.spaces.live.com/blog/cns!700f9463e92d4a88!378.entry
      

  3.   

    repeater编辑更新删除   
          <asp:Repeater id="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound" OnItemCommand="Repeater1_ItemCommand">   
             <ItemTemplate>   
                <asp:Panel ID="plItem" runat="server">   
                <tr>   
                    <td><%# DataBinder.Eval(Container.DataItem,"userid") %></td>   
                    <td><%# DataBinder.Eval(Container.DataItem,"username") %></td>   
                    <td>   
                        <asp:LinkButton runat="server" ID="lbtEdit" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "userid")%>'  
                         CommandName="Edit" Text="编辑"></asp:LinkButton>&nbsp;&nbsp;&nbsp;   
                        <asp:LinkButton runat="server" ID="lbtDelete" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "userid")%>'  
                         CommandName="Delete" Text="删除"></asp:LinkButton>   
                    </td>   
                </tr>   
                </asp:Panel>   
                   
                <asp:Panel ID="plEdit" runat="server">   
                <tr>   
                    <td><%# DataBinder.Eval(Container.DataItem,"userid") %></td>   
                    <td><asp:TextBox ID="UserName" Text='<%# DataBinder.Eval(Container.DataItem,"username") %>' runat="server"></asp:TextBox></td>   
                    <td>   
                        <asp:LinkButton runat="server" ID="lbtUpdate" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "userid")%>'  
                         CommandName="Update" Text="更新"></asp:LinkButton>&nbsp;&nbsp;&nbsp;   
                        <asp:LinkButton runat="server" ID="lbtCancel" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "userid")%>'  
                         CommandName="Cancel" Text="取消"></asp:LinkButton>   
                     </td>   
                </tr>   
                </asp:Panel>              
             </ItemTemplate>   
          </asp:Repeater>   
      
      
        public int id = 0;   
      
        protected void Page_Load(object sender, EventArgs e)   
        {   
      
            if (!IsPostBack)   
            {   
                BindGrid();   
            }   
      
        }   
      
        private void BindGrid()   
        {   
            string sql = "select top 5 * from [user] order by userid desc";   
      
            OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("test.mdb"));   
      
            OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);   
      
            DataSet ds = new DataSet();   
               
            da.Fill(ds, "temp");   
      
            Repeater1.DataSource = ds.Tables["temp"];   
      
            Repeater1.DataBind();   
      
        }   
      
      
        protected void Repeater1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)   
        {   
      
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)   
            {   
                DataRowView rowv = (DataRowView)e.Item.DataItem;   
                string userid = rowv["userid"].ToString();   
      
                if (userid != id.ToString())   
                {   
                    ((Panel)e.Item.FindControl("plItem")).Visible = true;   
                    ((Panel)e.Item.FindControl("plEdit")).Visible = false;   
                }   
                else  
                {   
                    ((Panel)e.Item.FindControl("plItem")).Visible = false;   
                    ((Panel)e.Item.FindControl("plEdit")).Visible = true;   
                }   
      
            }   
        }   
      
      
        protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)   
        {   
            if (e.CommandName == "Edit")   
            {   
                id = int.Parse(e.CommandArgument.ToString());   
            }   
            else if (e.CommandName == "Cancel")   
            {   
                id = -1;   
            }   
            else if (e.CommandName == "Update")   
            {   
                //Update.   
      
                string username = ((TextBox)this.Repeater1.Items[e.Item.ItemIndex].FindControl("UserName")).Text.Trim();   
      
                this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "key", "alert('更新ID:" + e.CommandArgument + ";页面值:姓名=" + username + "');", true);   
            }   
            else if (e.CommandName == "Delete")   
            {   
                //Delete.               
                this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "key", "alert('删除ID:" + e.CommandArgument + "');", true);   
            }   
      
            BindGrid();   
      
        }   
      

  4.   

    gridview能实现吗?更新后还要保存到数据库中
      

  5.   

    http://topic.csdn.net/u/20100502/10/fa135868-5793-44d7-a9f1-85a6ac4dd3da.html
      

  6.   

    在对数据进行增、删、改、查中我一般都是在用GridView,Repater虽然很实用,但是在之方面我觉得不如GridView来得方便了。
      

  7.   

    GridView绑定的数据样式不是都是成列出现的嘛?
      

  8.   

    要实现该功能用repeater不好实现,还不如用gridveiw或者datalist呢
      

  9.   

    推介 repater   效率高  gridveiw 自带的功能好实现   
    repater  你加控件来实现