listbox是什么控件 在ASP.NET 3.5中使用新的ListView控件[3]
在ASP.NET 3.5中使用新的ListView控件[3]
用ListView控件编辑数据
正如你所看到的 使用ListView控件显示数据相对要直接得多 但你还可以让用户在ListView中直接编辑数据 添加一个新页面ListViewEditExample aspx 它的代码如清单 所示
清单 编辑ListView
<%@ Page Language= C# %><script runat= server >void deptsView_ItemUpdated(object sender ListViewUpdatedEventArgs e){lblResult Text = e AffectedRows ToString() + row(s) successfully updated ;}
void deptsView_PagePropertiesChanged(object sender EventArgs e){//Set the text to empty when navigating to a different pagelblResult Text = ;} </script>< xmlns= // w / /x ><head runat= server ><link rel= Stylesheet type= text/css href= StyleSheet css /><title>Editing Data using ListView Control</title></head><body><form id= form runat= server ><div><asp:ListView ID= ContactsListView DataSourceID= deptSource DataKeyNames= DepartmentID runat= server OnItemUpdated= deptsView_ItemUpdated OnPagePropertiesChanged= deptsView_PagePropertiesChanged ><LayoutTemplate><table cellpadding= width= px border= runat= server id= tblProducts ><tr id= row runat= server class= header > <th id= header runat= server >Name</th><th id= header runat= server >Group Name</th><th id= header runat= server >Action</th></tr><tr runat= server id= itemPlaceholder /></table><asp:DataPager runat= server ID= deptsDataPager PageSize= ><Fields><asp:NextPreviousPagerField ShowFirstPageButton= True ShowLastPageButton= True FirstPageText= |<< LastPageText= >>| NextPageText= > PreviousPageText= < /></Fields></asp:DataPager></LayoutTemplate><ItemTemplate><tr id= row runat= server > <td><asp:Label ID= lblName runat= Server Text= <%#Eval( Name ) %> /></td><td valign= top ><asp:Label ID= lblGroupName runat= Server Text= <%#Eval( GroupName ) %> /></td><td><asp:LinkButton ID= btnEdit runat= Server Text= Edit CommandName= Edit /></td></tr></ItemTemplate><EditItemTemplate><tr style= background color: #ADD E > <td><asp:TextBox ID= txtName runat= server Text= <%# Bind( Name ) %> MaxLength= /><br /></td><td><asp:TextBox ID= txtGroupName runat= server Text= <%# Bind( GroupName ) %> MaxLength= /><br /></td><td><asp:LinkButton ID= btnUpdate runat= server CommandName= Update Text= Update /> <asp:LinkButton ID= btnCancel runat= server CommandName= Cancel Text= Cancel /></td></tr></EditItemTemplate></asp:ListView><asp:SqlDataSource ID= deptSource runat= server ConnectionString= <%$ ConnectionStrings:AdventureWorks %> SelectCommand= SELECT [DepartmentID] [Name] [GroupName] FROM HumanResources Department UpdateCommand= UPDATE HumanResources Department SET Name = @Name GroupName = @GroupName WHERE DepartmentID = @DepartmentID ></asp:SqlDataSource><br /><br /><asp:Label runat= server ID= lblResult Text= Font Bold= true /></div></form></body></>
![listbox是什么控件 在ASP.NET 3.5中使用新的ListView控件[3]](http://img.zhputi.com/uploads/7ac5/7ac5f2972ac83fcca85b34d2caa969b619787.jpg)
清单 的代码说明了如何使用EditItemTemplate组件在编辑模式下生成内容 然后通过SqlDataSource更新数据库
首先 你设置SqlDataSource的UpdateCommand属性 这样SQL语句就会用由用户指定的最新值执行数据库更新操作
<asp:SqlDataSource ID= deptSource runat= server ConnectionString= <%$ ConnectionStrings:AdventureWorks %> SelectCommand= SELECT [DepartmentID] [Name] [GroupName] FROM HumanResources Department UpdateCommand= UPDATE HumanResources Department SET Name = @Name GroupName = @GroupName WHERE DepartmentID = @DepartmentID ></asp:SqlDataSource>
接下来 在ItemTemplate组件中 指定编辑项目的连接用户
<ItemTemplate> <asp:LinkButton ID= btnEdit runat= Server Text= Edit CommandName= Edit /></td></tr></ItemTemplate>
然后 指定EditItemTemplate声明用户输入更新的部门名称或组名的文本框 以及提交或取消当前操作的用户连接
<EditItemTemplate><tr style= background color: #ADD E > <td><asp:TextBox ID= txtName runat= server Text= <%# Bind( Name ) %> MaxLength= /><br /></td><td><asp:TextBox ID= txtGroupName runat= server Text= <%# Bind( GroupName ) %> MaxLength= /><br /></td><td><asp:LinkButton ID= btnUpdate runat= server CommandName= Update Text= Update /> <asp:LinkButton ID= btnCancel runat= server CommandName= Cancel Text= Cancel /></td></tr></EditItemTemplate>
lishixinzhi/Article/program/net/201311/14844