2011-04-11 134 views
2

我在页面上有一个ASP.NET列表框,当发生回发时,我更改列表中的项目。如果列表中有> = 10个项目,我将Rows属性设置为10.但是如果少于10个项目,我想将行设置回任何Rows默认值。如何将ListBox.Rows属性重置为默认值(没有硬编码默认值)

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

有没有办法做到这一点?

+0

什么是'ListBox'在'asp.net'? **您确定吗?** – 2011-04-11 19:31:27

+0

@Waqas:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listbox%28v=VS.100%29.aspx – 2011-04-11 19:59:27

回答

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; 
    } 
} 
+0

我喜欢它。谢谢 – slolife 2011-04-14 23:02:01