这种分类显示效果怎么做?
怎么把SQL查出来的分类显示在网页上就像百度知道里最左面(问题分类)那样显示出来?也就是这种显示方式如何控制如果我表达得不清楚,如下图所示:
[attach]34631[/attach] 用Datalist 套Datalist就行了的。 ls正解…… 谢谢二楼的提示,再问下:
取是取出来了,怎么让这列数据显示在一行,并用空格隔开(上图二级分类的显示只显示前三行的数据,后而的显示为...,而且它们显示在一行上)。简单来说就是怎么让数据库里的某列显示在一行里 RepeatDirection="Horizontal" 谢谢楼上的朋友。效果基本上实现了!可是截取那个效果怎么做。我做过显示数据库里一个单元格的数据显示(前取前几个字,后面的显示为...)可是这种一列数据显示在一行,怎么截取呢? 我觉得它的这其实也不是什么截取,还是在dataitembound事件中给datalist加了一条数据罢了…… 我靠!来晚了! 我用select top 3 * from QueChildType
这个取了三条数据,然后在Datalist的模板列里加了个...
结果出来的是:
电脑/网络
硬件 ... 反病毒 ... 操作系统 ...
怎么每个都加了... [quote][bo]以下是引用 [un]hebingbing[/un] 在 2008-5-14 11:08 的发言:[/bo]
我觉得它的这其实也不是什么截取,还是在dataitembound事件中给datalist加了一条数据罢了…… [/quote]
不太明白你的意思。
我用表格控制了下显示,结果出来是这样:
[attach]34691[/attach]
好像是因为字比较大而...也当字符来显示了,结果...没有居底显示。与字不协调 你用表格控制是怎么样控制的?
想不出来表格怎么样可以控制……
呵呵……
说出来学习学习……
我刚才给你说的简单的说就是在datalist绑定的时候再加上自定义的一列……
就像dropdownlist那样绑定完了再给它加上自定义的一项……
我刚才试了试,没有做出来……
不过我用了改属性的方法做出来这效果……
在第二个datalist的ItemDataBound事件中改
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
int sl = DataList1.Items.Count;
if (sl == 4)
{
((LinkButton)(e.Item.FindControl("LinkButton1"))).Text = "……";
}
}
对了,还有我这样久一直把青妹妹当成了男的……
呵呵……
青妹妹可以试试能不能加入自定义的一列……
要是不行其实改属性也应该可以吧……
呵呵…… 对了我是top了5…… 呵呵,谢谢楼上的朋友,你现在做版主了啊。我再用你的办法试试!
呵呵,我哪里看起来像男生呢?名字也不像啊,你是怎么会认为我是男生呢?
我是在在第一个Datalist里放一个表格,1行2列,1列里放一个datalist
另一列里放一个链接。也就是"..."的链接。
<asp:DataList ID="DataList1" runat="server" OnItemDataBound="DataList1_ItemDataBound" >
<ItemTemplate>
<table style="position: relative">
<tr>
<td colspan="2" rowspan="2">
<a href="QuestionType.aspx"><%#DataBinder.Eval(Container.DataItem,"TypeName") %></a>
<asp:DataList ID="DataList2" runat="server" RepeatDirection="Horizontal" >
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Visible=False Text='<%# DataBinder.Eval(Container.DataItem,"ChildName") %>'></asp:Label>
<a href="QuestionType.aspx"><%#DataBinder.Eval(Container.DataItem,"ChildName") %></a> 
</ItemTemplate>
</asp:DataList>
<asp:Label id="lblTypeId" runat="server" Visible="false" Text='<%# DataBinder.Eval(Container.DataItem,"TypeID") %>' style="position: relative" ></asp:Label></td>
<td colspan="1" rowspan="2" style="text-align: center">
<a href ="QuestionType.aspx">...</a>
</td>
</tr>
<tr>
</tr>
</table>
</ItemTemplate>
</asp:DataList> 主要是搞it的女的少,所以要是看见搞it的一般就默认是男的……
呵呵……
不过现在又多了个青妹妹……
呵呵…… 我明白你的意思。
在第二个datalist的ItemDataBind事件里写:
protected void DataList2_ItemDataBound(object sender, DataListItemEventArgs e)
{
int sl = DataList1.Items.Count;
//这里不应该是datalist1吧!如果是的话,那出来的应是第四行的所在分类就成了下面的显示
电子/数码
诺基亚... 三星 ... 苹果 ...
按理说应是datalist2.items.count,但是程序找不到datalist1里的datalist2
if (sl == 4)
{
((LinkButton)(e.Item.FindControl("LinkButton1"))).Text = "……";
}
}
用上面的代码来的效果是这样的:
[attach]34693[/attach]
[[it] 本帖最后由 青格儿 于 2008-5-14 14:46 编辑 [/it]] 假如说你的第二个datalist要显示3条数据,完了之后就是“……”那么你就要在第二个datalist中select top 4……
然后
protected void DataList2_ItemDataBound(object sender, DataListItemEventArgs e)
{
int sl = DataList2.Items.Count;
if (sl == 3)
{
((LinkButton)(e.Item.FindControl("LinkButton1"))).Text = "……";
//这里你还可以按照上面的方式修改它的url等属性
}
}
我在我的机子上试了,一切正常……
页:
[1]
