将函数绑定到嵌入在转发器中的图像源

时间:2012-08-02 08:30:39

标签: c# asp.net sql-server c#-4.0 c#-3.0

我有一个转发器,它内部有图像。我想根据排名显示不同的图像,例如,如果排名是1我显示图像,如果是2我显示其他等,我也有5种图像和5种等级。

排名是数据集中的一列。但我的功能无法正常工作,我无法得到正确的结果。它只显示第一张照片。您对此操作有何建议?

非常感谢。

这是我的代码

public string getimg()
{ 
    SqlConnection con = new SqlConnection("data source=.;database=site;integrated security=true;");
     string sSQL = "Select username ,weight,point , Rank() over(order by point desc) as 'ranking' from karbar order by point desc";  
     SqlCommand cmd = new SqlCommand(sSQL, con);
     SqlDataAdapter adapt = new SqlDataAdapter(cmd);
     DataSet ds = new DataSet();
     adapt.Fill(ds);
     foreach (DataRow myRow in ds.Tables[0].Rows)
     {
         if (Convert.ToInt32(myRow["ranking"]) == 1)

         { return "price/con1.png"; }
         else return "price/con2.png";
     }

     }

及其html

  <div class="innerTitle">
                <img style="width:55px;height:55px" alt=""  src="<%# getimg() %>" />     </div>
                  <div class="innerContent" style=" width: 391px; direction:rtl ">

2 个答案:

答案 0 :(得分:1)

您好,您可以尝试这个答案

1修改你的功能

public string getimg(int indexRow)
{ 
}

2添加此选择代码

  if (Convert.ToInt32(myRow["ranking"]) == 1 
         && Convert.ToInt32(myRow["yourIndex"]) == indexRow ) //in order to select nice row
  {  
     return "price/con1.png"; 
  }

  return "price/con2.png";   
在通话中

3,您必须在页面中打印索引行,以便选择

img style="width:55px;height:55px" alt=""  src="<%# getimg(1) %>" />  //getimg(1) print first row.   

4让你索引

input type="hidden" runat="server" id="test" value="<%# DataBinder.Eval(Container.DataItem, "YourIndex") />%>" />

答案 1 :(得分:0)

试试这个:

而不是Rank(),尝试使用row_number()函数

Select username ,weight,point , 
 ROW_NUMBER() over(order by point desc) as 'ranking'
 from karbar order by point desc

。因为如果两个用户具有相同的排名,则两者都将排名为1,而如果使用row_number(),则他们将获得1和2排名