我写了一个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>
<asp:Parameter Name="Original_F_UserID" Type="Int64" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="F_UserName" Type="String" />
<asp:Parameter Name="F_UserAge" Type="Int32" />
<asp:Parameter Name="F_ImagePath" Type="String" />
<asp:Parameter Name="Original_F_UserID" Type="Int64" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="F_UserName" Type="String" />
<asp:Parameter Name="F_UserAge" Type="Int32" />
<asp:Parameter Name="F_ImagePath" Type="String" />
</InsertParameters>
</asp:ObjectDataSource>
</div>
<asp:ListView ID="ListView1" runat="server" DataKeyNames="F_UserID"
DataSourceID="ObjectDataSource1" InsertItemPosition="LastItem"
onitemdatabound="ListView1_ItemDataBound">
<ItemTemplate>
<tr runat="server" id="trRow">
<td>
<asp:Button ID="DeleteButton" runat="server" CommandName="Delete"
Text="Delete" />
<asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
</td>
<td>
<asp:Label ID="F_UserIDLabel" runat="server" Text='<%# Eval("F_UserID") %>' />
</td>
<td>
<asp:Label ID="F_UserNameLabel" runat="server"
Text='<%# Eval("F_UserName") %>' />
</td>
<td>
<asp:Label ID="F_UserAgeLabel" runat="server" Text='<%# Eval("F_UserAge") %>' />
</td>
<td>
<asp:Label ID="F_ImagePathLabel" runat="server"
Text='<%# Eval("F_ImagePath") %>' />
</td>
</tr>
</ItemTemplate>
<EmptyDataTemplate>
<table runat="server"
style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;">
<tr>
<td>
No data was returned.</td>
</tr>
</table>
</EmptyDataTemplate>
<InsertItemTemplate>
<tr style="">
<td>
<asp:Button ID="InsertButton" runat="server" CommandName="Insert"
Text="Insert" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel"
Text="Clear" />
</td>
<td>
</td>
<td>
<asp:TextBox ID="F_UserNameTextBox" runat="server"
Text='<%# Bind("F_UserName") %>' />
</td>
<td>
<asp:TextBox ID="F_UserAgeTextBox" runat="server"
Text='<%# Bind("F_UserAge") %>' />
</td>
<td>
<asp:TextBox ID="F_ImagePathTextBox" runat="server"
Text='<%# Bind("F_ImagePath") %>' />
</td>
</tr>
</InsertItemTemplate>
<LayoutTemplate>
<table runat="server">
<tr runat="server">
<td runat="server">
<table ID="itemPlaceholderContainer" runat="server" border="1"
style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;font-family: Verdana, Arial, Helvetica, sans-serif;">
<tr runat="server" style="background-color: #FFFBD6;color: #333333;">
<th runat="server">
</th>
<th runat="server">
F_UserID</th>
<th runat="server">
F_UserName</th>
<th runat="server">
F_UserAge</th>
<th runat="server">
F_ImagePath</th>
</tr>
<tr ID="itemPlaceholder" runat="server">
</tr>
</table>
</td>
</tr>
<tr runat="server">
<td runat="server"
style="text-align: center;background-color: #FFCC66;font-family: Verdana, Arial, Helvetica, sans-serif;color: #333333;">
<asp:DataPager ID="DataPager1" runat="server">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True"
ShowLastPageButton="True" />
</Fields>
</asp:DataPager>
</td>
</tr>
</table>
</LayoutTemplate>
<EditItemTemplate>
<tr runat="server" id="trRow">
<td>
<asp:Button ID="UpdateButton" runat="server" CommandName="Update"
Text="Update" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel"
Text="Cancel" />
</td>
<td>
<asp:Label ID="F_UserIDLabel1" runat="server" Text='<%# Eval("F_UserID") %>' />
</td>
<td>
<asp:TextBox ID="F_UserNameTextBox" runat="server"
Text='<%# Bind("F_UserName") %>' />
</td>
<td>
<asp:TextBox ID="F_UserAgeTextBox" runat="server"
Text='<%# Bind("F_UserAge") %>' />
</td>
<td>
<asp:TextBox ID="F_ImagePathTextBox" runat="server"
Text='<%# Bind("F_ImagePath") %>' />
</td>
</tr>
</EditItemTemplate>
<SelectedItemTemplate>
<tr style="background-color: #FFCC66;font-weight: bold;color: #000080;">
<td>
<asp:Button ID="DeleteButton" runat="server" CommandName="Delete"
Text="Delete" />
<asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
</td>
<td>
<asp:Label ID="F_UserIDLabel" runat="server" Text='<%# Eval("F_UserID") %>' />
</td>
<td>
<asp:Label ID="F_UserNameLabel" runat="server"
Text='<%# Eval("F_UserName") %>' />
</td>
<td>
<asp:Label ID="F_UserAgeLabel" runat="server" Text='<%# Eval("F_UserAge") %>' />
</td>
<td>
<asp:Label ID="F_ImagePathLabel" runat="server"
Text='<%# Eval("F_ImagePath") %>' />
</td>
</tr>
</SelectedItemTemplate>
</asp:ListView>
</form>
</body>
</html>