我正在创建一个ASP.NET / C#页面,用户在页面顶部输入ID,当他们按提交时,页面会回发并显示数据。现在,数据字段始终显示 - 即使页面加载且未进行任何搜索。这并不理想,因为当他们使用我制作的MultiView导航菜单时,会出现一些错误。此外,这显然不是一种好的做法。
如果SQLDataSource为空,有没有办法可以隐藏所有这些元素(它们是DetailsViews和GridViews,还有MultiView和Menu)?因此,如果搜索返回也没有结果,或者尚未执行任何查询。
由于
答案 0 :(得分:2)
您可以将这些元素包围为占位符控件,然后根据是否显示结果来设置占位符可见性。
我之前没有使用SqlDataSource对象,但为了满足您的要求,我建议检查页面是否已在PageLoad方法中回发,如果没有隐藏数据控件。然后处理没有返回结果的情况,向SqlDataSource.Selected事件添加一个方法:
ASPX:
<asp:PlaceHolder ID="myPlaceholder" runat="server">
....Data controlds
</asp:PlaceHolder>
代码背后:
protected void Page_Load(object sender, EventArgs e)
{
if(!isPostBack)
{
myPlaceholder.Visible = false;
}
}
protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
myPlaceholder.Visible = e.AffectedRows > 0;
}
答案 1 :(得分:1)
If GridView1.Rows.Count > 0 // then do stuff
答案 2 :(得分:0)
DataView dv = (DataView)SqlDSourse.Select(DataSourceSelectArguments.Empty);
if(dv.count>0)
{
...
}