グリッドビューにデータバインドされたオブジェクトのリストがあります。グリッドビューには、行に添付された削除ボタンがあります。
(オフラインで作業しているかのように) クリックしても保持するオブジェクトのリストが必要です セッション、Cookie、またはビューステートを使用したくありません
現在の動作: リストに 4 つのアイテムがある => 1 つのアイテムを削除する => リストに 3 つのアイテムがある => 1 つのアイテムを削除する (POSTBACK) リストは 4 つのアイテムで再生成され、その後 1 つ削除されます。
class Emails
{
public string Email { get; set; }
public Emails(string _Address)
{
Email = _Address;
}
}
if (!IsPostBack)
{
ListOfEmails = new List<Emails>();
ListOfEmails.Add(new Emails("1@a.com"));
ListOfEmails.Add(new Emails("2@a.com"));
ListOfEmails.Add(new Emails("3@a.com"));
ListOfEmails.Add(new Emails("4@a.com"));
GridView1.DataSource = ListOfEmails;
GridView1.DataBind();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string EmailToBeDeleted = GridView1.Rows[e.RowIndex].Cells[0].Text;
ListOfEmails.Remove(ListOfEmails.Find(L => L.Email == EmailToBeDeleted));
GridView1.DataSource = null;
GridView1.DataSource = ListOfEmails;
GridView1.DataBind();
}
aspx:
<asp:BoundField DataField="Email" HeaderText="Email Address" />
<asp:ButtonField ButtonType="Button" CommandName="Delete" HeaderText="Action2"
ShowHeader="True" Text="Delete" />
<asp:CommandField ButtonType="Image" DeleteImageUrl="~/delete.gif"
ShowDeleteButton="True" />
「現在、2 つの削除ボタンがあります」