有没有办法在动态呈现的HTML控件中维护ASP.NET ViewState?

有没有办法在动态呈现的HTML控件中维护ASP.NET ViewState?,asp.net,html,render,Asp.net,Html,Render,我想做一个自定义控件,它有两个我在render方法中渲染的控件。 是否可以在这些控件上保留视图状态,例如选中或不选中 有一种方法是使用ASP.NET服务器复选框控件, 使用this.Controls.Add将它们添加到OnLoad事件中, 每次都给他们相同的身份证, 但我不想这样做:您可以直接访问ViewState: bool checked = (bool)(ViewState["ThisControlCheckState"] ?? false); if (checked) { wri

我想做一个自定义控件,它有两个我在render方法中渲染的控件。 是否可以在这些控件上保留视图状态,例如选中或不选中

有一种方法是使用ASP.NET服务器复选框控件, 使用this.Controls.Add将它们添加到OnLoad事件中, 每次都给他们相同的身份证,
但我不想这样做:

您可以直接访问ViewState:

bool checked = (bool)(ViewState["ThisControlCheckState"] ?? false);
if (checked) {
    write("<input ... >");
}
else {
    write("<input ... >");
}

您可以直接访问ViewState:

bool checked = (bool)(ViewState["ThisControlCheckState"] ?? false);
if (checked) {
    write("<input ... >");
}
else {
    write("<input ... >");
}

如果要将ViewState恢复为动态控件,则必须在加载事件之前重新创建该控件。这意味着将该代码放入Init处理程序。

如果要将ViewState还原为动态控件,则必须在加载事件之前重新创建该控件。这意味着将代码放入Init处理程序。

创建控件时,请确保先将它们添加到页面中,然后再对其设置任何属性。这是因为为了使VIEW状态管理器考虑对管理的控制,它必须检测一个变化,并且它只能检测在控件添加到控件集合之后的更改。 设置显式ID也很重要。保存和还原ViewState时,控件ID必须匹配


另外,请确保您在创建控件时在正确的时间创建控件。

创建控件时,请确保先将它们添加到页面,然后再对其设置任何属性。这是因为为了使VIEW状态管理器考虑对管理的控制,它必须检测一个变化,并且它只能检测在控件添加到控件集合之后的更改。 设置显式ID也很重要。保存和还原ViewState时,控件ID必须匹配


另外,请确保您在加载事件之前的正确时间创建控件。

我应该如何在加载事件之前重新创建HTML控件?我应该如何在加载事件之前重新创建HTML控件?