关于asp.net的datalist
小弟用asp.net去玩开发,效果就是想实现从数据库读取图片并显示出来,这个已经做到了.可是问题是,我用datalist这个控件,在解释成HTML代码后,它是table来的,一个 tr td 包着一个图片,出来的效果就成了一行一个图片!
但我想做的效果是,用 li 来装图片,而不是用TABLE,所以估计要在HTML代码上使用<%for%>这种asp写法,可是小弟不会,求指教...
补充:其实意思就是,不想使用它asp.net的控件,不过我不知道<li></li>的循环输出应该怎么去写.
下面有个回答是<li><img src='<%#Eval("数据库中图片的路径")%>' alt=""/></li>
但是<li</li>外面应该还包着个FOR循环吧?我就是想知道那个FOR循环应该怎么去写咯..
答案:用Repeater 绑定数据后在它的内部写上<li><img src='<%#Eval("数据库中图片的路径")%>' alt=""/></li>就可以了.
后台:
protected StringBuilder _Datalist; // 数据列表HTML
public string DataListString
{
get { return _Datalist.ToString(); }
}
private void GetDataDiv(DataSet Data1)
{
StringBuilder ret = new StringBuilder();
//_Datalist = new StringBuilder();
for (int i = 0; i < Data1.Tables[0].Rows.Count; i++)
{
if (i == 0)
{
//这里可以加你的li去处理
ret.AppendFormat("<td><div class='buttonsmall lline'><a href=>
}
else
{
//这里可以加你的li去处理
ret.AppendFormat("<td><div class='buttonsmall'><a href=>
}
}
_Datalist.Append(ret);
}
前台:
<tr>
<td><table width="100%" height="23" border="0" cellpadding="0" cellspacing="0">
<tr>
<%=DataListString%>//这里是函数返回的网页字符串
</tr>
</table></td>
</tr>
没有这种用法的,asp.net的数据绑定控件在客户端生成的代码都是table
你这样写
<li><img src='<%#Eval("数据库中图片的路径")%>' alt=""/></li>就可以了.
答案补充不用包for循环.你上面不是有一个datalist吗?他自己会循环绑定的
ASPX文件:
<asp:DataList ID="DataList1" runat="server">
<HeaderTemplate>
用LI来显示图片
</HeaderTemplate>
<AlternatingItemTemplate>
<li>
<img alt="" src='<%#DataBinder.Eval(Container.DataItem,"picpath").ToString()%>' /></li>
</AlternatingItemTemplate>
</asp:DataList>
对应CS文件
DB db = new DB();
DataTable dt=new DataTable();
dt = db.Getdata("select picpath from adpic");
DataList1.DataSource = dt;
DataList1.DataBind();
dt.Dispose();
答案补充那简单。
比如你在ASPX页面里面定一个<div runat="server" id="divli">
然后你在CS文件里面用循环读取数据库里面内容
int i;
string str;
str="<ul>";
for (i=0;i<dt.count;i++)
{
str=str+"<li><img alt='' src='"+dt.rows[i]["picurl"]+"' /></li>"
}
str=str+"</ul>";
divli.innerhtml=str;//innerhtml不知道写错没。
这样就可以了。
用Repeater就行了
更多问题可加入QQ群:80604742
上一个:asp.net页面跳转
下一个:ASP如何判断邮箱是否正确?