请问除了OnItemDataBound外还有什么好的办法可以实现以下功能呢?
CS文件内容
using System;using System.Linq;using System.Web.UI;using System.Web.UI.WebControls;public partial class Consultation_Statistics_test : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataClassesDataContext DC = new DataClassesDataContext(); var result = DC.用户 .Select(m => new { m.ID, m.姓名 }); Repeater1.DataSource = result; Repeater1.DataBind(); } } protected void Repeater1_OnItemDataBound(object sender, RepeaterItemEventArgs e) { Label IDLabel = e.Item.FindControl("IDLabel") as Label; Label XMLabel = e.Item.FindControl("XMLabel") as Label; IDLabel.Text = DataBinder.Eval(e.Item.DataItem, "ID").ToString(); XMLabel.Text = DataBinder.Eval(e.Item.DataItem, "姓名").ToString(); }}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="Consultation_Statistics_test" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <div> <table> <tr> <td>ID</td> <td>姓名</td> </tr> <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_OnItemDataBound"> <ItemTemplate> <tr> <td> <asp:Label ID="IDLabel" runat="server" Text="Label"></asp:Label></td> <td> <asp:Label ID="XMlabel" runat="server" Text="Label"></asp:Label></td> </tr> </ItemTemplate> </asp:Repeater> </table> </div> </form></body></html>
<asp:Label ID="valueLabel" runat="server" Text='<%# Eval("ID") %>' />
[解决办法]
Repeater要么用<%# Eval() %> 要么用OnItemDataBound吧,我想用它的目的就在于灵活性大,<ItemTemplate>里放的什么控件,只有你自己绑定,自己手动来实现!这是这样想的!
如果全自动实现你就用GridView!
另外,我不清楚你非要这样做的目的是什么