我有一个问题,但我找不到合适的术语来进行合理的搜索并解决这个问题。
让我们来看看,当我创建一个页面的时候,我需要创建一个WebUserControl并在html标记中延迟一些类似state = "true“(像标签的文本)的东西,以便页面加载后,不管该控件是否随后在代码中被编辑。
<MyControls:Teste Id="aaa" runat="server" state="false"/>测试控件代码如下:(该控件的HTML页面为空,只有表头)
public partial class WebUserControls_WUC_Tect : System.Web.UI.UserControl
{
private static bool state ;
public bool State
{
get { return state ; }
set { state = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
}问题:
每当页面返回到服务器并重新加载时,状态变量总是被设置为false或true,这取决于我传递的初始状态,我想让这个变量只在页面开始时加载一次,然后只能通过codebeind进行更改。
我很感谢你的建议。
帕特里克·维加问候
发布于 2016-11-14 23:13:55
您需要使用ViewState来存储属性值,以保存持久化值。
public partial class WebUserControls_WUC_Tect : System.Web.UI.UserControl
{
private static bool state ;
public bool State
{
get
{
if (ViewState["MyState"] == null)
{
ViewState["MyState"] = false;
}
return (bool)ViewState["MyState"];
}
set
{
ViewState["MyState"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
}https://stackoverflow.com/questions/40567416
复制相似问题