龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

ASP.NET控制前台的数据项的显示和隐藏,主要通过反射机制来实现

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
要求如果前台有数据项的话 这一行就显示,没有的话,就隐藏。 如果要是一个一个判断,并通过Panel的Visible属性设置的话,就得写25次,难道没有别的办法了吗?当然有,就用反射机制
要求如果前台有数据项的话 这一行就显示,没有的话,就隐藏。

如果要是一个一个判断,并通过Panel的Visible属性设置的话,就得写25次,难道没有别的办法了吗?当然有,就用反射机制就可以。

protected void Page_PreRender(object sender, EventArgs e)
    {
        PropertyInfo[] pi 
= this.Page.GetType().GetProperties();
        
foreach (PropertyInfo prop in pi)
        {
            
if (prop != null && prop.PropertyType == typeof(string))
            {
                
string val = (string)prop.GetValue(thisnull);
                
if (string.IsNullOrEmpty(val))
                {
                    
string pnName = "pn_" + prop.Name;
                    
if (Page.FindControl(pnName) != null)
                    {
                        Page.FindControl(pnName).Visible 
= false;
                    }
                }
            }
        }
    }

 

    需要注意的是:
    第一,应当放在PreRender事件中;
    第二,必须有一个判断,就是必须属性器是字符串类型;
    第三,Panel的ID命名有一个约定,就是“pn_”开头,后面跟属性器的名字。
精彩图集

赞助商链接