0

假设,在我创建此控件的页面(WebForms)的 Page_Load() 上:

HtmlGenericControl optionBox = new HtmlGenericControl("div");
optionBox.Attributes["class"] = "class_1";

然后,用户将使用 LinkBut​​ton 调用页面。在从此按钮调用的方法上,我更改了以前 div 的类:

protected void cmdCerca_Click(object sender, EventArgs e)
{
    ...
    div.Attributes.Add("class", "class_2");
    ...
}

好吧,如果我查看渲染结果,我会看到 div 的类已更改。

这意味着,在下一次调用此页面时(来自此上下文,示例调用cmdCerca_2_Click),该对象将从视图中恢复,获取class_2,而不是class_1

但是,如果在结束时cmdCerca_Click我用 . 调用同一页面,则不会发生这种情况Response.Redirect()。似乎视图会丢失。

为什么?我该如何解决?

希望问题很清楚。

4

1 回答 1

2

You need to add the controls in the page init event, rather than load, in order to get them into the control tree.

You must be recreating this control on every postback? In this case, your default class will be set every time.

于 2012-05-08T08:22:25.633 回答