これを参照してください..私はそれをテストしました..
心に留めておかなければならないこと..
2つのグリッドビュー用に2つの異なるテーブルを作成する必要があります..しかし、それらのテーブルのデザインはtbl1とtbl2と同じでなければなりません..tbl1で1つのフィールドをプライマリキーとして作成し、自動インクリメントします
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にバインドします...
これについてお気軽にお尋ねください..役に立った場合は回答としてマークしてください