1

「ACCEPT」ボタンをクリックした後にグリッドビューが必要です。承認されたレコードを、別のページにある別のグリッドビューに移動または転送したいですか?

私はすでに2つのグリッドビューを持っています:

PendingRecordsGridviewという名前のGridview1AcceptedRecordsGridviewという名前のGridview2

登録ボタンをクリックした後、PendingRecordsGridviewでデータを送信するregister.aspxページをすでに作成しました。そしてそれは動作します!そして今、私が言ったように。そのグリッドビューに「ACCEPT」ボタンを追加したいので、Acceptボタンをクリックした後。レコードは AcceptedRecordsGridview (別のページ) に転送されます。ヘルプ!

4

1 に答える 1

1

これを参照してください..私はそれをテストしました..

心に留めておかなければならないこと..

  1. 2つのグリッドビュー用に2つの異なるテーブルを作成する必要があります..しかし、それらのテーブルのデザインはtbl1とtbl2と同じでなければなりません..tbl1で1つのフィールドをプライマリキーとして作成し、自動インクリメントします

  2. tbl2に主キーまたは自動インクリメントフィールドを保持しないでください

承認ボタンで、最初のデータが 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にバインドします...

これについてお気軽にお尋ねください..役に立った場合は回答としてマークしてください

于 2013-01-06T09:18:26.367 に答える