繁体   English   中英

防止控件加载

[英]Preventing a control from loading

如何防止ASPX页面中显示的控件加载?

基本上,我有一个带有单个ObjectDataSource的ASP.NET Web表单,该表单提供了2个GridView(我们称它们为gvSystemAgvSystemB )。 ObjectDataSource从SQL Server存储过程获取其数据。

该存储过程从系统A或系统B中提取数据,具体取决于“系统”参数的值。 这两个系统完全不同,因此该存储过程的输出也不同。

所以我基本上想显示gvSystemAgvSystemB ,但不能同时显示两者。 ObjectDataSource和两个Gridview都位于aspx页面上。 如何防止gvSystemA或gvSystemB从后台代码加载? 我尝试了几件事,但它仍然尝试加载两个Gridview:

    protected void Page_Load(object sender, EventArgs e)
    {
        if ((string)HttpContext.Current.Session["System"] == "sysA")
        {
            gvSystemB.Enabled = false;
        }
        else
        {
            gvSystemA.Enabled = false;
        }
    }

而且我收到以下错误(因为来自gvSystemA的DataField与gvSystemB不同):

在所选数据源上找不到名称为“ TELEPHONENUM”的字段或属性

您需要将Visible属性设置为Enabled。 设置Visible = false时,它应该对UI隐藏,并且不应该进行数据绑定。

protected void Page_Load(object sender, EventArgs e)
{

    if ((string)HttpContext.Current.Session["System"] == "sysA")
    {
        gvSystemB.Visible = false;
    }
    else
    {
        gvSystemA.Visible = false;
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM