日期:2014-05-17  浏览次数:20423 次

我写了一个ListView1_ItemDataBound 怎么就不能更新出错?
我用的是强类型DataSet和ObjectDataSource,没写之前是可以更新的,写了ListView1_ItemDataBound事件之后,一更新后数据库中该条数据,除了ID之外都被赋值为null!!!!!!!!!!!!!!!!!!

ItemTemplate和EditItemTemplate分别去掉和加上<tr  runat="server" id="trRow"> 我都试过了
相关代码如下:


        protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
        {
            if (e.Item.ItemType == ListViewItemType.DataItem)
            {
                ListViewDataItem lvitem = (ListViewDataItem)e.Item;
                DataRowView drview = (DataRowView)lvitem.DataItem;

                var user = (LkfDataBind.DAL.DataSet1.T_UsersRow)drview.Row;
                if (user.F_UserAge > 30)
                {
                    HtmlTableRow trRow = (HtmlTableRow)e.Item.FindControl("trRow"); //as HtmlTableRow;
                    trRow.Attributes["class"] = "waning";
                }
            }
        }



<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="LkfListViewTest.aspx.cs" Inherits="LkfDataBind.ObjectData.LkfListViewTest" %>

<!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>
    <style type="text/css">
        .waning{background-color:Red;}
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
            DeleteMethod="Delete" InsertMethod="Insert" 
            OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" 
            TypeName="LkfDataBind.DAL.DataSet1TableAdapters.T_UsersTableAdapter" 
            UpdateMethod="Update">
            <DeleteParameters>
          &nb