0

所以我有一个用 c# 编码的网站,当我加载某个表单时,它会从数据库中加载几条记录并填充一个网格视图。一个事件是对标记为重新发送的按钮的按钮单击。此方法获取网格中所有被选中的项目并将重新发送它们。如果所选项目不遵循特定的规则集,则会弹出另一个表单并说必须移动记录以重新发送。用户可以选择点击“是”并移动记录或“否”并继续他们的业务。

我需要将选定项目的列表从重新发送单击传递到单独表单上的是单击,唯一的问题是弹出窗口和网格在技术上是相同的表单。我可以加载它和所有爵士乐,但是加载事件和所有弹出窗口的代码都位于与网格相同的 form.cs 中。我无法让事件处理程序工作。我通常创建一个自定义 EventArgs 类并将值存储在其中,但由于这两种形式在技术上是相同的,我不确定如何正确传输信息。当我尝试从我的“是”单击事件中访问所选值的列表时,我不断收到空引用异常。

关于我应该做什么的任何建议?属性和变量不起作用,这让我相信它们在技术上是两种不同的形式,我只是不知道如何在这种情况下使用它们。

如果您需要代码或想要任何澄清,请告诉我。

4

1 回答 1

0

将所选项目的列表存储在Session缓存中,如下所示:

protected void buttonResend_Click(object sender, EventArgs e)
{
    List<Items> listOfSelectedItems = new List<Items>();
    // Put logic here for populating listOfSelectedItems

    // Store listOfSelectedItems in Session cache
    Session["SelectedItems"] = listOfSelectedItems;
}

注意:我编写了Items存储在List<T>;中的类 显然,您拥有用于保存所选项目的任何类都可以使用,甚至只是一个strings 列表。

现在在“其他”页面中,您可以检索listOfSelectedItemsin Session,如下所示:

if(Session["SelectedItems"] != null)
{
    List<Items> listOfItems = Session["SelectedItems"] as List<Items>;

    // Put logic here to work with list of selected items
}
于 2013-08-09T02:55:52.843 回答