我正在寻找以下场景的解决方案我正在使用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