如何将ListBox.Rows属性重置为默认值(无需硬编码默认值)

时间:2011-04-11 19:27:37

标签: asp.net

我在页面上有一个ASP.NET ListBox,当发生回发时,我会更改列表中的项目。如果列表中有> = 10个项目,我设置Rows属性= 10.但是如果少于10个项目,我想将Rows设置回Rows的默认值。

我从检查反映的代码中看到默认值是4,但我宁愿不在我的代码中将其硬编码为4,而是以某种方式将其重置为默认值。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:2)

您可以在页面的Init阶段获取默认值。来自documentation

  

在页面生命的这个阶段   循环,声明服务器控件   页面初始化为默认值   州;但是,每个人的观点状态   控制尚未填充。

所以你可以这样做:

private int _defaultRows;

protected void Page_Init(object sender, EventArgs e)
{
    _defaultRows = yourListBox.Rows;
}

protected void Page_PreRender(object sender, EventArgs e)
{
    if (yourListBox.Items.Count >= 10) {
        yourListBox.Rows = 10;
    } else {
        yourListBox.Rows = _defaultRows;
    }
}