gpt4 book ai didi

c# - 为什么我的 ViewState 没有被保留?

转载 作者:太空宇宙 更新时间:2023-11-03 20:03:37 25 4
gpt4 key购买 nike

这个问题很简单,但也许更好的标题是“当涉及到 ViewStates 时,我不知道我在做什么,请帮助我”。我希望能够做的是单击 btnAddSkills 并在预先存在的表的底部出现一个新行(如果它不存在,则创建该表)。当前,单击 btnAddSkills 时会添加第一行,但第二次单击时会覆盖第一行(以及 DropBox 的选定值)的细胞丢失。

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication3
{
public partial class _Default : System.Web.UI.Page
{
private Table tblSkillsMaster;

protected void Page_Load(object sender, EventArgs e)
{
//my past experience tells me something will need to go in here
}

protected void btnAddSkill_Click(object sender, EventArgs e)
{
if (ViewState["masterSkills"] != null)
{
tblSkillsMaster = (Table)ViewState["masterSkills"];
}
else
{
plhSkillsTable.Controls.Clear(); //plh is a PlaceHolder
tblSkillsMaster = new Table();
plhSkillsTable.Controls.Add(tblSkillsMaster);
}
tblSkillsMaster.Rows.Add(AddRow()); //handled elsewhere, cut for brevity
ViewState["masterSkills"] = (Table)tblSkillsMaster;
}
}
}

最佳答案

来自 MSDN :您可以在 View 状态中存储的数据类型您可以在 View 状态中存储以下类型的对象:

  • 字符串
  • 整数
  • bool 值
  • 数组对象
  • 数组列表对象
  • 哈希表
  • 自定义类型转换器

否则,您可以创建自己的类并使用 Serializable 属性使其可序列化。

对于您的情况,您不能编辑 Table 类来添加属性,因为您不拥有它。您可以做的是创建您自己的类,该类将使用您想要的 Table 中的信息,并处理您的类之间的来回处理,这些类可以在 View 状态中与 Table 类一起使用。

关于c# - 为什么我的 ViewState 没有被保留?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25512222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com