如何将ListBox.Rows属性重置为默认值(没有硬编码默认值)
问题描述:
我在页面上有一个ASP.NET列表框,当发生回发时,我更改列表中的项目。如果列表中有> = 10个项目,我将Rows属性设置为10.但是如果少于10个项目,我想将行设置回任何Rows默认值。如何将ListBox.Rows属性重置为默认值(没有硬编码默认值)
我从检查默认值为4的反射代码中看到,但我宁愿不在代码中将其硬编码为4,而是以某种方式将其重置为默认值。
有没有办法做到这一点?
答
您可以在页面的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
什么是'ListBox'在'asp.net'? **您确定吗?** – 2011-04-11 19:31:27
@Waqas:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listbox%28v=VS.100%29.aspx – 2011-04-11 19:59:27