日期:2014-05-18  浏览次数:20488 次

请教如何在DataList中使用C#代码调用数据
首先说一下我的意图:

DataList显示当前注册用户,根据用户在线情况分别调用"在线状态图片"和"不在线状态图片"(两个Gif图片)

我的理解(ASPX页)是:
<asp:DataList ID="DataList1" runat="server" RepeatColumns="5">
  <ItemTemplate>
  ...................................
  <td width="28">
  <script>
  if (<%#Eval("[color=#FF0000]onlinestate")%>==1)//onlinestate,为在线状态字段,有两个值0,1表示在线不在线
  {
  Response.Write("<img alt='在线' src='aspx/1/Online.gif' width='16' height='16' id='onlineimg'/>");
  }
  </script>
   
  </td>
............................
  </ItemTemplate>
  </asp:DataList>[/color]

CS页代码:

int meid = Convert.ToInt32(Request.QueryString["meid"].ToString());
string sqluser="select * form actor,BBS_users where actor.Ac_UserName = BBS_users.username and actor.me_id = "+meid+"";
ConnDB db = new ConnDB();
DataSet ds = db.getDs(sqluser);
DataList1.DataSource = ds.Tables[0].DefaultView;
DataList1.DataBind();


请教一种更为合适的实现方法,谢谢,本人守信誉给分及时.

------解决方案--------------------
两个GIF图片都放在里面,当为1的时候让NotOnline.gif的Visable为false,反之让Online.gif的Visable为false
HTML code
<asp:Image ID="Image1" Visible='<%#Eval("onlinestate").ToString()=="1"?true:false %>' src="aspx/1/Online.gif" runat="server" />
<asp:Image ID="Image2" Visible='<%#Eval("onlinestate").ToString()=="1"?false:true %>' src="spx/1/NotOnline.gif" runat="server" />

------解决方案--------------------
- -!
代码里面似乎有全角的空格....

<%# Eval("onlinestate")==1?" <img alt='在线' src='aspx/1/Online.gif' width='16' height='16' id='onlineimg'/>":"<img alt='离线' src='aspx/1/NotOnline.gif' width='16' height='16' id='onlineimg'/>" %>

或者

<%img alt='离线' src='aspx/1/<%# Convert.toInt32(Eval("onlinestate").toString())==1?"Online":"NotOnline" %>.gif' width='16' height='16' id='onlineimg'/>" 

注意都只有一行代码
不要换行
我这里没有VS没办法调试
你检查一下