情况描述:
在Repeater的OnItemDataBound中 DataBinder.Eval(e.Item.DataItem, "id") 可以获取制定列的值
在Listview中怎么获取?if (DataBinder.Eval(e.Item.DataItem, "id").ToString() == Request.QueryString.Get("sid"))
{
    SonSortLink.CssClass = "ksbg";
}“System.Web.UI.WebControls.ListViewItem”不包含“DataItem”的定义

解决方案 »

  1.   

    void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e) {
                if (e.Item.ItemType == ListViewItemType.DataItem) {
                    HiddenField hf = e.Item.FindControl("hfId") as HiddenField;
                    if (hf != null) {
                        string strId = hf.Value;
                    }
                }
            }<asp:ListView ID="ListView1" runat="server" DataKeyNames="A">
            <ItemTemplate>
                <li>
                    <asp:TextBox ID="txt" runat="server" Text='<%#Eval("A") %>'></asp:TextBox></li>
                <asp:HiddenField ID="hfId" runat="server" Value='<%#Eval("A") %>' />
            </ItemTemplate>
            <LayoutTemplate>
                <ul>
                    <li runat="server" id="itemPlaceholder"></li>
                </ul>
            </LayoutTemplate>
        </asp:ListView>
      

  2.   

    protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
      {
        if (e.Item.ItemType == ListViewItemType.DataItem)
        {
          Label a = e.Item.FindControl("x") as Label;
          a.Text ="序号:" + e.Item.DataItemIndex + " 内容: " + DataBinder.Eval(e.Item.DataItem, "Name").ToString();
        }
      }