如何判断Datalist是否为空

protected void Page_Load(object sender, EventArgs e)
    
{
        
if (DataList1.Items.Count == 0)
        
{
            LabelMessage.Text 
= "No Records";
            LabelMessage.Visible 
= true;
        }

        
else
        
{
            LabelMessage.Visible 
= false;
        }

 }
Protected Sub SqlDataSource1_Selected(ByVal sender As ObjectByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles SqlDataSource1.Selected

        
If e.AffectedRows = 0 Then
            myLabel.Text 
= "No record found!"
        
Else
            myLabel.Text 
= ""
        
End If
    
End Sub

GridView.rows.Count,返回的是GridView当前页面的记录数

objectdatasource的selected事件,:e.AffectedRows返回-1

解决办法:

在ObjectDataSource的Selected事件,取e.ReturnValue的类型,强制转换类型取这个DataSet的行数

protected void ObjectDataSource1_Selected(object sender, ObjectDataSourceStatusEventArgs e)
    {
        //Response.Write(e.ReturnValue.GetType().ToString());
        EventDataSet.T_EventListDataTable dt = new EventDataSet.T_EventListDataTable();
        dt = (EventDataSet.T_EventListDataTable)e.ReturnValue;
        Label1.Text = dt.Rows.Count.ToString();
    }

运行的时候:

1、注释蓝色和灰色部分,用红色部分取e.ReturnValue的类型

2、注释红色,修改蓝色部分,设置类型转换

e.ReturnValue返回的对象肯定是select的全部,一个DataSet,不过要对应你自己的在数据集里设置的Adapter

posted @ 2007-11-26 17:56  Fernando  阅读(1132)  评论(0编辑  收藏  举报