Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#gridview如何删除索引_C#_Asp.net_Gridview - Fatal编程技术网

C#gridview如何删除索引

C#gridview如何删除索引,c#,asp.net,gridview,C#,Asp.net,Gridview,嘿,伙计们,我想知道如何删除已插入到视图列表中的项目 实际上,我在网上搜索了一段时间,却找不到有用的东西 这是我的代码,我希望能够删除我通过列表添加的内容,谢谢 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { List<Book> list = (List<Book>)Session["SelectedBooks"]; if (list != nul

嘿,伙计们,我想知道如何删除已插入到视图列表中的项目

实际上,我在网上搜索了一段时间,却找不到有用的东西

这是我的代码,我希望能够删除我通过列表添加的内容,谢谢

protected void Page_Load(object sender, EventArgs e)
{
  if (!IsPostBack)
  {
    List<Book> list = (List<Book>)Session["SelectedBooks"];
    if (list != null)
    {
      GridViewProducts.DataSource = list;
      GridViewProducts.DataBind();
    }
    //list of borrows
  }
}

protected void GridViewProducts_RowCommand(object sender, 
                                                     GridViewCommandEventArgs e)
{
  try
  {
    if (e.CommandName == "Remove")
    {
      GridViewProducts.DeleteRow(GridViewProducts.SelectedIndex);    
    }
  }
  catch (Exception)
  {
    lblInfo.Text = "Can not remove selected book from Bag.";           
  }
}
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!IsPostBack)
{
列表=(列表)会话[“所选书籍”];
如果(列表!=null)
{
GridViewProducts.DataSource=列表;
GridViewProducts.DataBind();
}
//借款清单
}
}
受保护的void GridViewProducts\u row命令(对象发送器,
GridViewCommandEventArgs(e)
{
尝试
{
如果(例如,CommandName==“删除”)
{
GridViewProducts.DeleteRow(GridViewProducts.SelectedIndex);
}
}
捕获(例外)
{
lblInfo.Text=“无法从书包中删除所选书籍。”;
}
}

使用DataKey属性将opensource的一些primarykey绑定到gridview,行内命令使用此DataKey从数据源中删除项,然后使用修改后的数据源重新绑定网格。

您必须从集合中删除项并重新绑定(如其他答案中所述)

但是我看到,
List
是在Page\u Load方法中本地声明的。那么,您是如何实现这一目标的呢?

试试以下方法:

CommandName
添加到Gridview标记内的删除按钮:

<asp:Button Text="Delete" runat="server" CommandName="Delete" />

除非我把它放在错误的地方,否则它仍然不起作用,我一整天都在编码。这么说雾已经困了两个小时了?
private List<Book> SelectedBooks
{
    get
    {
        return Session["SelectedBooks"] as List<Book>;
    }
    set
    {
        Session["SelectedBooks"] = value;
    }
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {       
        var selectedBooks = SelectedBooks;
        if(selectedBooks == null)
        {
            // Populate the selected books first time
            // SelectedBooks = ...
        }

        BindGridview(SelectedBooks);
    }
}

private void BindGridview(List<Book> bookList)
{   
    GridViewProducts.DataSource = bookList;
    GridViewProducts.DataBind();
}

protected void GridViewProducts_RowDeleting(object sender, GridViewDeleteEventArgs e)
{      
    SelectedBooks.RemoveAt(e.RowIndex);         
    BindGridview(SelectedBooks);
}