Repeater绑定OjbectDataSource,打算如果返回的数据为空,则要显示“无数据”,但Repeater没有提供EmptyDataText属性。我试着在它的ItemDataBound事件中判断 是否Repeater1.Items.Count==0,但发现无效。实在搞不定了!多谢各位!
解决方案 »
- Char控件显示图像和DropDownList绑定数据库
- DataRowView drv = myds.Tables["LoginUser"].DefaultView[0];这句话什么意思啊?
- TreeView的SelectedNodeChanged事件怎么用
- 一个连接access的错误
- 求个思路,在线等.关于sitemap
- 如何在asp.net 连接 水晶报表
- 求一上傳程序具體要求見內容?
- 大家说应聘的时候拿着什么样的作品给人事经理看比较有分量?
- 要在ASPX页面显示一个WEB.CONFIG中的数据应该怎么办?
- 合并datatable
- 如何用脚本把验证控件的值清空?
- 字符串输出过程中处理出现如下错误:
如果没有数据:
Label1.Visible=true;
Label1.Text="没有数据"
Repeater1.Visible=false;
<%#DataBinder.Eval(Container.DataItem,"myValue","{0}")==""?无数据:DataBinder.Eval(Container.DataItem,"myValue","{0}")%>'
</ItemTemplate>
这个ObjectDataSourc其实是一个对数据库的封装,存储过程中不好实现的业务逻辑判断移到了程序中了。
最好的方式就是我提到的关键:在哪一个事件中如何判断数据源返回的数据为空?至于加一个Label来显示和隐藏,这很容易想到。
我基本上找遍了事件和属性,就是找不到。
各位高手帮帮忙!
<%#DataBinder.Eval(Container.DataItem, "TimeForDay") == "" ? "无事件" : DataBinder.Eval(Container.DataItem, "TimeForDay")%>
<%# Convert.IsDBNull(Container.DataItem)? "无事件" : DataBinder.Eval(Container.DataItem, "TimeForDay")%><%# (Container.DataItem==null)? "无事件" : DataBinder.Eval(Container.DataItem, "TimeForDay")%>结果都是一样,没用
以下是成功的测试代码<ASP:DATAGRID id="DataGrid1" runat="server" autogeneratecolumns="False">
<COLUMNS>
<ASP:TEMPLATECOLUMN>
<ITEMTEMPLATE>
<%#DataBinder.Eval(Container.DataItem,"StringValue","{0}")==""?"无数据":DataBinder.Eval(Container.DataItem,"StringValue","{0}")%>
</ITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
<ASP:TEMPLATECOLUMN>
<ITEMTEMPLATE>
<%#DataBinder.Eval(Container.DataItem,"CurrencyValue","{0}")%>
</ITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
</COLUMNS>
</ASP:DATAGRID>private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
DataGrid1.DataSource=CreateDataSource();
DataGrid1.DataBind();
}
}
ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr; dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double))); for (int i = 0; i < 9; i++)
{
dr = dt.NewRow(); dr[0] = i;
if(i%2 == 0)
{
dr[1] = "";
}
else
{
dr[1] = "Item " + i.ToString(); }
dr[2] = 1.23 * (i + 1); dt.Rows.Add(dr);
} DataView dv = new DataView(dt);
return dv;
}
public class Event
{
public Event()
{
//
// TODO: 在此处添加构造函数逻辑
//
} private int _eventId;
private string _title;
private int _typeId;
private DateTime _fromTiime;
private DateTime _toTime;
private bool _isAllDayEvent;
private string _address; #region Properties
public int EventId
{
get { return _eventId; }
set { _eventId = value; }
} public string Title
{
get { return _title; }
set { _title = value; }
} public int TypeId
{
get { return _typeId; }
set { _typeId = value; }
} public DateTime FromTime
{
get { return _fromTiime; }
set { _fromTiime = value; }
}
public DateTime ToTime
{
get { return _toTime; }
set { _toTime = value; }
}
public bool IsAllDayEvent
{
get { return _isAllDayEvent; }
set { _isAllDayEvent = value; }
}
public string TimeForDay
{
get
{
if (_isAllDayEvent)
return " 全天事件";
else
return _fromTiime.ToString("t") + " - " + _toTime.ToString("t");
}
} public string TimeForSearch
{
get
{
if (_isAllDayEvent)
return "全天事件";
else
return FromTime.ToString("t") + " - " + ToTime.ToString("t");
}
}
public string Address
{
get { return _address; }
set { _address = value; }
}
#endregion public static List<Event> GetDayEvents(DateTime date, string typeIds, bool onlyForViewer)//typeIds是类似于这样的字符串:1,2,3,4,5 或者 all 。Viewer:普通查看者,Admin:管理员
{ SqlHelper objSqlHelper = new SqlHelper();
SqlParameter[] objParams = new SqlParameter[4];
objParams[0] = new SqlParameter("@FromDate", date);
objParams[1] = new SqlParameter("@ToDate", date.AddDays(1));
objParams[2] = new SqlParameter("@TypeIds", typeIds);
objParams[3] = new SqlParameter("@OnlyForViewer", onlyForViewer);
SqlDataReader reader = objSqlHelper.ExecuteReader("cal_GetEvents", objParams); List<Event> objList = new List<Event>();
while (reader.Read())
{
Event e = new Event();
e.EventId = reader.GetInt32(reader.GetOrdinal("EventId"));
e.Title = reader["Title"].ToString();
e.TypeId = reader.GetInt32(reader.GetOrdinal("TypeId"));
e.FromTime = reader.GetDateTime(reader.GetOrdinal("FromTime"));
e.ToTime = reader.GetDateTime(reader.GetOrdinal("ToTime"));
e.IsAllDayEvent = reader.GetBoolean(reader.GetOrdinal("IsAllDayEvent"));
e.Address = reader["Address"].ToString(); objList.Add(e);
}
reader.Close();
return objList;
}