Asp.net 当GridView没有行时,可以选择显示文本来代替GridView
我有一个基本的GridView,它显示了要执行的任务列表(只是一个示例)Asp.net 当GridView没有行时,可以选择显示文本来代替GridView,asp.net,gridview,asp.net-2.0,Asp.net,Gridview,Asp.net 2.0,我有一个基本的GridView,它显示了要执行的任务列表(只是一个示例) 数据源在aspx页面中指定,它是存储过程的结果集 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="..." SelectCommand="pToDoList" SelectCommandType="StoredProcedure"> </asp:SqlDataSource> 因此,呈
数据源在aspx页面中指定,它是存储过程的结果集
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="..."
SelectCommand="pToDoList" SelectCommandType="StoredProcedure">
</asp:SqlDataSource>
因此,呈现的页面将任务显示为数据行(每个任务一行)
我的问题是
当存储过程没有返回数据时,页面将保持空白。我希望有一个文本,而不是说,例如:“今天无事可做”
怎么做?谢谢向页面添加标签,称之为ErrorLabel,然后在GridView的数据绑定事件中执行类似操作:
protected void GridView1_DataBound(object sender, EventArgs e)
{
if(GridView1.Rows.Count <= 0) ErrorLabel.Text = "Nothing to do today";
else ErrorLabel.Visible = false;
}
受保护的void GridView1\u数据绑定(对象发送方,事件参数e)
{
if(GridView1.Rows.Count一个选项是使用页脚显示此消息。在ItemDataBound期间,如果ItemType是页脚,则检查数据源是否为空,如果为空,则显示消息
或者,如果您想在ASPX中按顺序工作,您可以使用EmptyDataTemplate并在其中添加您的消息。使用EmptyDataTemplate:
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSqlDataSource"
autogeneratecolumns="true"
runat="server">
<emptydatarowstyle backcolor="LightBlue"
forecolor="Red"/>
<emptydatatemplate>
<asp:image id="NoDataImage"
imageurl="~/images/Image.jpg"
alternatetext="No Image"
runat="server"/>
No Data Found.
</emptydatatemplate>
</asp:gridview>
有一个属性“EmptyDataText”,允许您在gridview为空时指定文本我只需添加一个包含文本“今天无事可做”的label控件NodeataLabel,并在页面加载事件中添加一些代码:
if (GridView1.Rows == 0)
{
GridView1.Visible = false;
}
else
{
noDataLabel.Visible = false;
}
这有点粗糙,但它在Web表单HTML中嵌入了C。如果没有数据,并且表单被呈现,GridView就会被忽略。+1谢谢,在我的情况下,这实际上可以很好地工作。我接受了模板建议,因为它在格式方面提供了更大的灵活性
if (GridView1.Rows == 0)
{
GridView1.Visible = false;
}
else
{
noDataLabel.Visible = false;
}