所以我有一个用c#编码的网站,当我加载某个表单时,它会从数据库中加载几个记录并填充网格视图。一个事件是按钮单击以显示重新发送的按钮。此方法获取所选网格中的所有项目并重新发送它们。如果所选项目不遵循一组特定规则,则会弹出另一个表单并说明必须移动记录以重新发送。用户可以选择是,然后移动记录,或者选择否,继续他们的业务。
我需要将重新发送单击的所选项目列表传递给单独表单上的是单击,唯一的问题是弹出窗口和网格在技术上是相同的形式。我可以加载它和所有爵士乐,但加载事件和所有弹出窗口的代码都与网格位于相同的form.cs中。我无法让事件处理程序工作。我通常创建一个自定义EventArgs类并将值存储在那里,但由于这两种形式在技术上是相同的,我不确定如何正确传输信息。当我尝试从我的yes click事件访问所选值列表时,我不断收到空引用异常。
有关我应该做什么的任何建议?属性和变量没有用,这让我相信它们在技术上是两种不同的形式,我只是不知道如何在这种情况下使用它们。
如果您需要代码或想要澄清任何内容,请告诉我。
答案 0 :(得分: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>
类;很明显,无论您拥有所选项目的班级都可以使用,或者只是string
s。
现在,在“其他”页面中,您可以检索listOfSelectedItems
中的Session
,如下所示:
if(Session["SelectedItems"] != null)
{
List<Items> listOfItems = Session["SelectedItems"] as List<Items>;
// Put logic here to work with list of selected items
}