ASP回发删除数据
本文关键字:数据 删除 ASP | 更新日期: 2023-09-27 18:18:28
我正在与Web表单工作,我有一些麻烦,特别是下拉菜单和post back功能,他们有。我对每个下拉列表都有多个方法,所以当你选择下拉列表索引时,它会转到该方法并填充选择。
问题是,显示这些选择的方式是AutoPostBack(据我所知),它返回后端代码并再次运行。当我尝试将数据保存到模型中时,这会产生问题,例如:
public class List_id_model
{
public List<int> client_id { get; set; }
public List<int> pro_id { get; set; }
}
每次我必须使用它时,我都必须重新实例化对象,然后覆盖模型中的数据。我如何防止这种情况发生?
下面是我的下拉菜单的aspx代码: <asp:DropDownList ID="DropDown_Project" runat="server" AutoPostBack="true" AppendDataBoundItems="true" DataTextField="Company_Name" DataValueField="id" Width ="200px" OnSelectedIndexChanged="DropDown_Project_SelectedIndexChanged" >
<asp:ListItem Text="---Select---" Value="0" />
</asp:DropDownList>
下面是后面的代码:
protected void DropDown_Client_SelectedIndexChanged(object sender, EventArgs e)
{
List_id_model client_list = new List_id_model();
client_list.client_id = new List<int>();
client_list.client_id.Add(value);
}
protected void DropDown_Project_SelectedIndexChanged(object sender, EventArgs e)
{
List_id_model client_list = new List_id_model();
client_list.pro = new List<int>();
client_list.pro_id.Add(value);
}
我想以某种方式避免重新实例化"List_id_model"每次我需要添加到它,因为这将转储所有当前数据。
如果你对我的问题有任何疑问,我很乐意明天早上给你答复,到时我有更多的时间来解决这个问题。
您应该将数据存储在某个持久存储器中。在你的例子中,你应该使用ViewState。例如:
public List_id_model Model
{
get
{
List_id_model model = ViewState["List_id_model"] as List_id_model;
if (model != null)
return model;
return new List_id_model();
}
set
{
ViewState["List_id_model"] = value;
}
}
protected void DropDown_Client_SelectedIndexChanged(object sender, EventArgs e)
{
List_id_model client_list = Model;
if (client_list.client_id == null)
client_list.client_id = new List<int>();
client_list.client_id.Add(value);
Model = client_list;
}
这段代码是为了演示方法,我没有在IDE中尝试,所以如果你发现一些拼写错误等,很抱歉