在ASP.NET中自定义ListView控件

时间:2011-04-08 15:05:03

标签: c# asp.net listview

我在ASP.NET中使用ListView控件从我的数据库中检索数据。我研究了ListView控件的Web表单代码,并发现它基本上使标签显示从数据库中检索的数据。我想知道如何操纵标签。我可以轻松地更改标签的字体颜色,但是我不能使标签截断并显示“(.. more)”如果其长度超过10而不诉诸C#代码。 (我在.cs页面找不到标签。)无论如何我可以操作由ListView控件自动生成的标签的C#代码吗?皮斯让我知道。提前谢谢!

下面是我在C#中的ListView控件

<asp:ListView ID="Posts" runat="server" DataSourceID="SqlDataSource1">
        <ItemTemplate>
            <span>
            <asp:Label ID="subjectLabel" runat="server" Font-Bold="True" Font-Size="Large" Text='<%# Eval("subject") %>' />
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <asp:Label ID="contentsLabel" runat="server" Font-Size="Small" ForeColor="#666699" Text='<%# Eval("contents") %>' />
            <br />
            <br /></span>
        </ItemTemplate>

2 个答案:

答案 0 :(得分:1)

如果你真的想避免在代码中这样做,你总是可以在提供数据的SQL中做到这一点:

SELECT CASE WHEN Len(contents) > 10 THEN Left(contents, 10) + '...' ELSE contents END FROM YourTable WHERE whatever

但如果您不想使用代码隐藏,则可以使用三元运算符在数据绑定Eval()中执行此操作。

答案 1 :(得分:0)

在页面后面的代码中你需要将listview控件与你正在获取的数据表绑定,

Posts.Datasource = DT; Posts.Databind();

其中dt是使用sql查询获取的数据表。一旦你更精细地写出问题,给出更多解释