我正在为使用 asp.net & sql server 的以下场景寻找解决方案。
我有一个中继器控件,我需要根据存储在数据库表中的一系列值在中继器控件中显示图像。
Database Table :
Level1 Min Max
1 100 100
2 50 99
3 1 49
我目前将 itemdatabound 事件用于转发器控件。& 硬编码最小值和最大值。我想从数据库中获取值。我可以做的一件事是编写一个存储过程并在项目数据绑定事件中调用它,但我担心它会影响性能。
我想知道是否有一种在不影响性能的情况下从数据库中获取最小值和最大值的好方法?
protected void rptMonitorSummary_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
int X = Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "X"));
int Y = Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "Y"));
float percentage = (((float)X / (float)Y)) * 100;
if (percentage == 0)
{
((Image)e.Item.FindControl("btnPerformanceImage")).ImageUrl = "../Images/Level1.png";
}
else if (percentage > 49 && percentage < 100 )
{
((Image)e.Item.FindControl("btnPerformanceImage")).ImageUrl = "../Images/Level2.png";
}
else if (percentage > 1 && percentage < 49)
{
((Image)e.Item.FindControl("btnPerformanceImage")).ImageUrl = "../Images/Level3.png";
}
}
我在代码中绑定中继器:
rptSummary.DataSource = GetSummaryInfo(BeginTime.ToString(), EndTime.ToString());
rptSummary.DataBind();
GetSummaryInfo 方法调用存储过程,该过程执行计算并返回摘要信息 x 和 y