单击Gridview中的“接受”按钮,然后在另一个网格视图中移动记录

时间:2013-01-06 08:20:48

标签: asp.net gridview expression move transfer

我想要一个gridview,点击后有“ACCEPT”按钮。我希望将接受的记录移动或转移到位于另一个页面的另一个网格视图中?

我已经有两个网格视图:

Gridview1 命名为 PendingRecordsGridview Gridview2 命名为 AcceptedRecordsGridview

我已经创建了一个register.aspx页面,点击注册按钮后,它将在PendingRecordsGridview中发送数据。它的工作原理!现在,就像我说的那样。我想在gridview中添加“ACCEPT”按钮,因此单击“接受”按钮后。记录将转移到AcceptedRecordsGridview(另一页)请!救命啊!

1 个答案:

答案 0 :(得分:1)

参考这个..我已经测试过了..

你必须记住的事情......

  1. 你必须为你的两个gridview创建两个不同的表..但是那些表设计应该与tbl1和tbl2相同..在tbl1中将一个字段作为主键并使其自动递增

    < / LI>
  2. 不要在tbl2中保留任何主键或自动递增字段

  3. 这里接受按钮第一个数据将被插入到tbl2然后从原始表tbl1中删除 page.aspx文件

                <asp:GridView ID="PendingRecordsGridview" runat="server" 
            AutoGenerateColumns="False" DataKeyNames="id"
            onrowcommand="PendingRecordsGridview_RowCommand">
            <Columns>
                <asp:TemplateField HeaderText="Accept">
                    <ItemTemplate>
                        <asp:Button CommandArgument='<%# Bind("id") %>' ID="Button1" runat="server" CausesValidation="false" 
                            CommandName="accept" Text="Accept" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="name" SortExpression="name">
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("name") %>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("name") %>'></asp:TextBox>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="id" SortExpression="id">
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("id") %>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Eval("id") %>'></asp:Label>
                    </EditItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="sd1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
            SelectCommand="SELECT * FROM [tbl1]"></asp:SqlDataSource>
    

    现在是page.aspx.cs文件

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bind();
        }
    }
    protected void bind()
    {
        PendingRecordsGridview.DataSource = sd1;
        PendingRecordsGridview.DataBind();
    }
    protected void PendingRecordsGridview_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "accept")
        {
            Session["id"] = e.CommandArgument.ToString();
            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
    
            con.Open();
                SqlCommand cmd1 = new SqlCommand("INSERT INTO tbl2 (id, name) SELECT id, name FROM tbl1 where id='"+Session["id"].ToString()+"'", con);
                SqlCommand cmd2 = new SqlCommand("delete from tbl1 where id='"+Session["id"].ToString()+"'", con);
                cmd1.ExecuteNonQuery();
                cmd2.ExecuteNonQuery();
                bind();
    
        }
    }
    

    现在只需要另一页...并将其与tbl2绑定,这将有批准的记录......

    随时可以询问这个问题......如果你发现它有用,请将其标记为答案