案例:入库单管理
•需求:提供入库单明细的增删改查页面。字段:Id(Guid类型,ItemInserting事件中为主键赋值)、类型(可选值:采购入库、盘盈入库、退货入库,先做成写死的三个项, (*)完成再做一个值来自于另外一张入库单类型表)、入库日期(默认为当天,ItemCreated,TextBox(2008-08-08),(*)使用JQueryUI的datepicker控件)、单价(int)、数量(int) 、金额(int) 。所有字段都不能为空,当用户输入单价或者数量之后自动计算金额(金额=单价*数量),考虑折扣因此金额可以不等于数量*单价,用户还可以修改计算以后的金额。如果数量为负值(红单),则此行显示为红色背景(服务器端、客户端都行)。不允许修改、删除。
aspx页面代码:
View Code
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="入库单.aspx.cs" Inherits="入库单2.入库单" %> <!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> <link href="CSS/jquery/ui-lightness/jquery-ui-1.8.2.custom.css" rel="stylesheet" type="text/css" /> <script src="JS/jquery-1.4.2.js" type="text/javascript"></script> <script src="JS/jquery.ui.datepicker.min.js" type="text/javascript"></script> <script src="JS/jquery.ui.core.min.js" type="text/javascript"></script> <script src="JS/jquery.ui.widget.min.js" type="text/javascript"></script> <script src="JS/jquery.ui.datepicker-zh-CN.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { $("input[myid=inDate]").datepicker({ altFormat: 'yy-mm-dd' }).datepicker('option', $.datepicker.regional["zh-CN"]); var inputblur = function () { if ($("input[myid=price]").val().length > 0 && $("input[myid=count]").val().length > 0) { var result = parseInt($("input[myid=price]").val(), 10) * parseInt($("input[myid=count]").val(), 10); $("input[myid=amount]").val(result); } }; $("input[myid=price]").blur(inputblur); $("input[myid=count]").blur(inputblur); }); </script> </head> <body> <form id="form1" runat="server"> <div> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="Delete" InsertMethod="Insert" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="入库单2.DAL.DataSetInBillsTableAdapters.T_InBillsTableAdapter" UpdateMethod="Update"> <InsertParameters> <asp:Parameter DbType="Guid" Name="Id" /> <asp:Parameter Name="InType" Type="Int32" /> <asp:Parameter Name="InDate" Type="DateTime" /> <asp:Parameter Name="Price" Type="Int32" /> <asp:Parameter Name="Count" Type="Int32" /> <asp:Parameter Name="Amount" Type="Int32" /> </InsertParameters> <UpdateParameters> <asp:Parameter Name="InType" Type="Int32" /> <asp:Parameter Name="InDate" Type="DateTime" /> <asp:Parameter Name="Price" Type="Int32" /> <asp:Parameter Name="Count" Type="Int32" /> <asp:Parameter Name="Amount" Type="Int32" /> <asp:Parameter DbType="Guid" Name="Original_Id" /> </UpdateParameters> </asp:ObjectDataSource> </div> <asp:ListView ID="ListView1" runat="server" DataKeyNames="Id" DataSourceID="ObjectDataSource1" InsertItemPosition="LastItem" oniteminserting="ListView1_ItemInserting" onitemcreated="ListView1_ItemCreated" onitemdatabound="ListView1_ItemDataBound"> <EmptyDataTemplate> <table runat="server" style=""> <tr> <td> 未返回数据。</td> </tr> </table> </EmptyDataTemplate> <InsertItemTemplate> <tr style=""> <td> <asp:DropDownList ID="ddlInType" runat="server" SelectedValue='<%# Bind("InType") %>'> <asp:ListItem Text="采购入库" Value="1"></asp:ListItem> <asp:ListItem Text="盘盈入库" Value="2"></asp:ListItem> <asp:ListItem Text="退货入库" Value="3"></asp:ListItem> </asp:DropDownList> </td> <td> <asp:TextBox myid="inDate" ID="InDateTextBox" runat="server" Text='<%# Bind("InDate") %>' /> </td> <td> <asp:TextBox myid="price" ID="PriceTextBox" runat="server" Text='<%# Bind("Price") %>' /> </td> <td> <asp:TextBox myid="count" ID="CountTextBox" runat="server" Text='<%# Bind("Count") %>' /> </td> <td> <asp:TextBox myid="amount" ID="AmountTextBox" runat="server" Text='<%# Bind("Amount") %>' /> </td> <td> <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="插入" /> <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="清除" /> </td> </tr> </InsertItemTemplate> <ItemTemplate> <tr id="trItem" runat="server"> <td> <asp:DropDownList ID="ddlInType" runat="server" SelectedValue='<%# Eval("InType") %>'> <asp:ListItem Text="采购入库" Value="1"></asp:ListItem> <asp:ListItem Text="盘盈入库" Value="2"></asp:ListItem> <asp:ListItem Text="退货入库" Value="3"></asp:ListItem> </asp:DropDownList> </td> <td> <asp:Label ID="InDateLabel" runat="server" Text='<%# Eval("InDate","{0:D}") %>' /> </td> <td> <asp:Label ID="PriceLabel" runat="server" Text='<%# Eval("Price") %>' /> </td> <td> <asp:Label ID="CountLabel" runat="server" Text='<%# Eval("Count") %>' /> </td> <td> <asp:Label ID="AmountLabel" runat="server" Text='<%# Eval("Amount") %>' /> </td> </tr> </ItemTemplate> <LayoutTemplate> <table runat="server"> <tr runat="server"> <td runat="server"> <table ID="itemPlaceholderContainer" runat="server" border="0" style=""> <tr runat="server" style=""> <td runat="server"> 入库类型</td> <td runat="server"> 入库日期</td> <td runat="server"> 价格</td> <td runat="server"> 数量</td> <td runat="server"> 金额</td> </tr> <tr ID="itemPlaceholder" runat="server"> </tr> </table> </td> </tr> <tr runat="server"> <td runat="server" style=""> </td> </tr> </table> </LayoutTemplate> </asp:ListView> </form> </body> </html>
aspx.cs页面代码:
View Code
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Web.UI.HtmlControls; namespace 入库单2 { public partial class 入库单 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e) { e.Values["Id"] = Guid.NewGuid(); DropDownList ddlInType = (DropDownList)e.Item.FindControl("ddlInType"); e.Values["InType"] = ddlInType.SelectedValue; } protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e) { if (e.Item.ItemType == ListViewItemType.InsertItem) { TextBox InDateTextBox = (TextBox)e.Item.FindControl("InDateTextBox"); InDateTextBox.Text = DateTime.Now.ToShortDateString(); } } protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e) { ListViewDataItem lvDataItem = (ListViewDataItem)e.Item; DataRowView dataRowView = (DataRowView)lvDataItem.DataItem; var billRow = dataRowView.Row as 入库单2.DAL.DataSetInBills.T_InBillsRow; if (billRow.Count < 0) { HtmlTableRow trItem = (HtmlTableRow)e.Item.FindControl("trItem"); trItem.BgColor = "Pink"; } } } }
运行界面效果:
代码附件:入库单2.rar