C# 阻止控件加载
如何防止加载显示在ASPX页面中的控件 基本上,我有一个ASP.NET web表单,其中有一个C# 阻止控件加载,c#,asp.net,gridview,C#,Asp.net,Gridview,如何防止加载显示在ASPX页面中的控件 基本上,我有一个ASP.NET web表单,其中有一个ObjectDataSource,它提供了两个GridView(我们称它们为gvSystemA和gvSystemB)。该ObjectDataSource正在从SQL Server存储过程获取其数据 该存储过程根据“System”参数的值从系统A或系统B中提取数据。这两个系统完全不同,因此该存储过程的输出也不同 所以我基本上想显示gvSystemA,或者gvSystemB,但不是两者都显示。ObjectD
ObjectDataSource
,它提供了两个GridView(我们称它们为gvSystemA
和gvSystemB
)。该ObjectDataSource
正在从SQL Server存储过程获取其数据
该存储过程根据“System”参数的值从系统A或系统B中提取数据。这两个系统完全不同,因此该存储过程的输出也不同
所以我基本上想显示gvSystemA
,或者gvSystemB
,但不是两者都显示。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中的数据字段不同于gvSystemB):
在所选数据源上找不到名为“TELEPHONENUM”的字段或属性
您需要设置未启用的属性。当您设置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;
}
}
您需要设置未启用的属性。当您设置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;
}
}
是的,这就成功了。不知道为什么,但我从未想过使用Visible,因为我认为如果Enabled=false不起作用,Visible也不会起作用。但现在,它使可视性与用户界面相关。谢谢是的,这就成功了。不知道为什么,但我从未想过使用Visible,因为我认为如果Enabled=false不起作用,Visible也不会起作用。但现在,它使可视性与用户界面相关。谢谢