asp.net,关于页面中使用Listview ,其中 <%# DataBinder.Eval(Container.DataItem,"****") %>
发布网友
发布时间:2022-04-27 13:34
我来回答
共2个回答
热心网友
时间:2022-04-27 15:03
<%#Eval('字段名') %> 这样绑不是更省力? 表会比较多?是字段比较多吧。不过好像没办法解决,因为你从数据库里查出来的数据 控件又不知道你需要显示哪个,所以还是逐个绑吧,一个页面能绑多少字段?太多了用户体验肯定不好。 建议换种思路,比如绑定少一点的字段,点击进去显示具体信息,把所有字段都显示出来追问是报表比较多,前台点选后筛出不同的表,想说后台整理datatable绑定给前台,要遍历DATATABLE的colsname出来,所以需要循环dt.colsname出来哦。
追答原来不是固定的,那完全可以在数据库中判断取得哪些列名与数据放在DT里绑出来
热心网友
时间:2022-04-27 16:21
你能这么用吗?
前台
<asp:ListView ID="ListView1" runat="server" OnItemDataBound="ListView1_ItemDataBound">
<ItemTemplate>
中间就是你绑定的代码
比方说你这儿是一个<li><%# DataBinder.Eval(Container.DataItem,"****") %></li>
你现在可以把<li></li>那行语句用
<asp:Literal ID="Literal1" runat="server"></asp:Literal>这个代替
</ItemTemplate>
</asp:ListView>
后台
protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
Literal Li = e.Item.FindControl("Literal1") as Literal;//找到
Listview 里面ID叫Literal1的控件
for (int i = 0; i < length; i++)
{
Li.text="<li></li>";//循环你要做的
}
}
}
手敲的,可能有点不对,没测试