熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

FormView編輯更新商品詳細信息

2013-11-13 10:15:28  來源: .NET編程 
    一前期准備
   
    編輯商品信息屬於管理功能管理功能的網頁最好單獨放在一個文件夾中為此做一些准備工作
   
    修改母版頁中的路徑為絕對路徑
   
    復制Controls中的ItemDetailsControlascx改名為ItemManageControlascx
   
    在ItemManageControlascx中的FormView的ItemPlate模板中添加三個LinkButton按鈕編輯新建刪除設置一下單元格右對齊會美觀一點
   
    臨時在ItemDetailsaspx中添加代碼
   
    ResponseRedirect(Manager/ItemManageaspx + RequestUrlQuery)
   
    Web中新建文件夾Manager並添加ItemManageaspx引用母版頁
   
    二編輯EditItemTemplate模板可直接將模板ItemTemplate復制過來進行修改添加必要的文本框下拉列表框模板代碼如下
   
    (注意<%@OutputCacheDuration=VaryByParam=page;categoryId%>頁面緩存要去掉否則嘿嘿嘿)
   
    [html]  <EditItemTemplate>
   
    <table cellpadding= cellspacing=>
   
    <tr>
   
    <td height= width=>
   
    </td>
   
    <td height= width=>
   
    </td>
   
    <td height= width=>
   
    </td>
   
    <td height= width=>
   
    </td>
   
    <td height= width=>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td rowspan= width=>
   
    <asp:Image ID=imgItem runat=server AlternateText=<%# Eval(Name) %> Height=
   
    ImageUrl=<%# Eval(Image) %> Width= /></td>
   
    <td width=>
   
    </td>
   
    <td colspan= >
   
    <asp:FileUpload ID=fupImage runat=server Width=% />
   
    <asp:Button ID=btnUpload runat=server OnClick=btnUpload_Click Text=上傳 /></td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    商品類別</td>
   
    <td width=>
   
    <asp:DropDownList ID=ddlCategories runat=server
   
    AutoPostBack=True
   
    OnSelectedIndexChanged=ddlCategories_SelectedIndexChanged>
   
    </asp:DropDownList>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    商品名稱</td>
   
    <td width=>
   
    <asp:TextBox ID=txtName runat=server Text=<%# Bind(Name) %>></asp:TextBox>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    商品價格</td>
   
    <td width=>
   
    <asp:TextBox ID=txtPrice runat=server Text=<%# Bind(Price) %>></asp:TextBox>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    </td>
   
    <td width=>
   


    商品描述</td>
   
    <td width=>
   
    <asp:TextBox ID=txtDescn runat=server Text=<%# Bind(Descn) %>></asp:TextBox>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    供應時間</td>
   
    <td width=>
   
    <asp:TextBox ID=txtSupplyTime runat=server Text=<%# Bind(SupplyTime) %>></asp:TextBox>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    供應日期</td>
   
    <td width=>
   
    <asp:TextBox ID=txtSupplyDate runat=server Text=<%# Bind(SupplyDate) %>></asp:TextBox>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    供應地區</td>
   
    <td width=>
   
    <asp:TextBox ID=txtSupplyArea runat=server Text=<%# Bind(SupplyArea) %>></asp:TextBox>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td height= width=>
   
    </td>
   
    <td height= width=>
   
    </td>
   
    <td height= width=>
   
    </td>
   
    <td height= width=>
   
    </td>
   
    <td height= width= align=right>
   
    <asp:LinkButton ID=lbtnDelete runat=server CommandName=Update Text=更新 />
   
    <asp:LinkButton ID=lbtnNew runat=server CommandName=Cancel Text=取消 />
   
    </td>
   
    </tr>
   
    </table>
   
    </EditItemTemplate>
   
    <EditItemTemplate>
   
    <table cellpadding= cellspacing=>
   
    <tr>
   
    <td height= width=>
   
    </td>
   
    <td height= width=>
   
    </td>
   
    <td height= width=>
   
    </td>
   
    <td height= width=>
   
    </td>
   
    <td height= width=>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td rowspan= width=>
   
    <asp:Image ID=imgItem runat=server AlternateText=<%# Eval(Name) %> Height=
   
    ImageUrl=<%# Eval(Image) %> Width= /></td>
   
    <td width=>
   
    </td>
   
    <td colspan= >
   
    <asp:FileUpload ID=fupImage runat=server Width=% />
   
    <asp:Button ID=btnUpload runat=server OnClick=btnUpload_Click Text=上傳 /></td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    </td>
   
    <td width=>
   


    商品類別</td>
   
    <td width=>
   
    <asp:DropDownList ID=ddlCategories runat=server
   
    AutoPostBack=True
   
    OnSelectedIndexChanged=ddlCategories_SelectedIndexChanged>
   
    </asp:DropDownList>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    商品名稱</td>
   
    <td width=>
   
    <asp:TextBox ID=txtName runat=server Text=<%# Bind(Name) %>></asp:TextBox>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    商品價格</td>
   
    <td width=>
   
    <asp:TextBox ID=txtPrice runat=server Text=<%# Bind(Price) %>></asp:TextBox>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    商品描述</td>
   
    <td width=>
   
    <asp:TextBox ID=txtDescn runat=server Text=<%# Bind(Descn) %>></asp:TextBox>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    供應時間</td>
   
    <td width=>
   
    <asp:TextBox ID=txtSupplyTime runat=server Text=<%# Bind(SupplyTime) %>></asp:TextBox>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    供應日期</td>
   
    <td width=>
   
    <asp:TextBox ID=txtSupplyDate runat=server Text=<%# Bind(SupplyDate) %>></asp:TextBox>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    </td>
   
    <td width=>
   
    供應地區</td>
   
    <td width=>
   
    <asp:TextBox ID=txtSupplyArea runat=server Text=<%# Bind(SupplyArea) %>></asp:TextBox>
   
    </td>
   
    </tr>
   
    <tr>
   
    <td height= width=>
   
    </td>
   
    <td height= width=>
   
    </td>
   
    <td height= width=>
   
    </td>
   
    <td height= width=>
   
    </td>
   
    <td height= width= align=right>
   
    <asp:LinkButton ID=lbtnDelete runat=server CommandName=Update Text=更新 />
   
    <asp:LinkButton ID=lbtnNew runat=server CommandName=Cancel Text=取消 />
   
    </td>
   
    </tr>
   
    </table>
   
    </EditItemTemplate>
   


    三ItemManageControlascx的後台代碼
   
    代碼頁的主任是讀取前台窗體的值主要是FileUpload控件和DropDownList控件的值兩個值分別使用了ViewState存儲了信息讀取數據的時候注意如果用戶沒有做修改剛使用原來的值這個值放在了privatestaticIList<ItemDetails> itemdetails =newList<ItemDetails>()
   
    [csharp] using System;
   
    using SystemWeb;
   
    using SystemWebUIWebControls;
   
    using SystemCollectionsGeneric;
   
    using WestGardenDAL;
   
    using WestGardenModel;
   
    namespace WestGardenWeb
   
    {
   
    public partial class ItemManageControl : SystemWebUIUserControl
   
    {
   
    private static IList<ItemDetails> itemdetails = new List<ItemDetails>()
   
    protected void Page_Load(object sender EventArgs e)
   
    {
   
    if (!IsPostBack)
   
    {
   
    BindFormView()
   
    ViewState[ImageUrl] = null;
   
    ViewState[SelectedCategoryId] = null;
   
    }
   
    }
   
    protected void fvwItemDetails_ModeChanging(object sender FormViewModeEventArgs e)
   
    {
   
    switch (eNewMode)
   
    {
   
    case FormViewModeEdit:
   
    thisfvwItemDetailsChangeMode(FormViewModeEdit)
   
    BindFormView()
   
    DropDownList ddl = (DropDownList)fvwItemDetailsFindControl(ddlCategories
   
    BindDropDownList(ddl)
   
    break;
   
    case FormViewModeReadOnly:
   
    thisfvwItemDetailsChangeMode(FormViewModeReadOnly)
   
    BindFormView()
   
    break;
   
    default:
   
    break;
   
    }
   
    }
   
    protected void fvwItemDetails_PreRender(object sender EventArgs e)
   
    {
   
    }
   
    protected void ddlCategories_SelectedIndexChanged(object sender EventArgs e)
   
    {
   
    DropDownList ddl = (DropDownList)fvwItemDetailsFindControl(ddlCategories
   
    ViewState[SelectedCategoryId] = ddlSelectedValue;
   
    }
   
    protected void btnUpload_Click(object sender EventArgs e)
   
    {
   
    FileUpload fup = (FileUpload)fvwItemDetailsFindControl(fupImage
   
    if (fupHasFile)
   
    {
   
    fupSaveAs(ServerMapPath(~/Images/Items/) + fupFileName)
   
    Image img = (Image)fvwItemDetailsFindControl(imgItem
   
    imgImageUrl = ~/Images/Items/ + fupFileNameToString()
   
    ViewState[ImageUrl] = ~/Images/Items/ + fupFileNameToString()
   
    }
   
    else
   
    {
   
    ResponseWrite(<script>alert(請先浏覽並選擇圖片)</script>
   
    }
   
    }
   
    protected void fvwItemDetails_ItemUpdating(object sender FormViewUpdateEventArgs e)
   
    {
   
    if (ViewState[ImageUrl] != null)
   
    {
   
    itemdetails[]Image = ViewState[ImageUrl]ToString()
   
    }
   
    if (ViewState[SelectedCategoryId] != null)
   
    {
   
    DropDownList ddl = (DropDownList)fvwItemDetailsFindControl(ddlCategories
   
    itemdetails[]CategoryId = ViewState[SelectedCategoryId]ToString()
   
    }
   
    TextBox txtname = (TextBox)fvwItemDetailsFindControl(txtName
   
    itemdetails[]Name = txtnameText;
   
    TextBox txtPrice = (TextBox)fvwItemDetailsFindControl(txtPrice
   
    itemdetails[]Price = decimalParse(txtPriceText)
   
    TextBox txtDescn = (TextBox)fvwItemDetailsFindControl(txtDescn
   
    itemdetails[]Descn = txtDescnText;
   
    TextBox txtSupplyTime = (TextBox)fvwItemDetailsFindControl(txtSupplyTime
   
    itemdetails[]SupplyTime = txtSupplyTimeText;
   
    TextBox txtSupplyDate = (TextBox)fvwItemDetailsFindControl(txtSupplyDate
   
    itemdetails[]SupplyDate = txtSupplyDateText;
   
    TextBox txtSupplyArea = (TextBox)fvwItemDetailsFindControl(txtSupplyArea
   
    itemdetails[]SupplyArea = txtSupplyAreaText;
   
    Item item = new Item()
   
    itemUpdateItem(itemdetails[])
   
    fvwItemDetailsChangeMode(FormViewModeReadOnly)
   
    BindFormView()
   
    ViewState[ImageUrl] = null;
   
    ViewState[SelectedCategoryId] = null;
   
    }
   
    private void BindFormView()
   
    {
   
    int itemKey = intParse(RequestQueryString[itemId])
   
    Item item = new Item()
   
    itemdetails = itemGetItemDetailsByItemId(itemKey)
   
    fvwItemDetailsDataSource = itemdetails;
   
    fvwItemDetailsDataBind()
   
    }
   
    private void BindDropDownList(DropDownList ddl)
   
    {
   
    ddlDataSource = new Category()GetCategories()
   
    ddlDataTextField = Name;
   
    ddlDataValueField = CategoryId;
   
    ddlDataBind()
   
    string selectcategory = RequestQueryString[categoryId]ToString()
   
    if (selectcategory != null)
   
    {
   
    ListItem selectedItem = ddlItemsFindByValue(selectcategory)
   
    if (selectedItem != null)
   
    selectedItemSelected = true;
   
    }
   
    }
   
    }
   
    }
   


    using System;
   
    using SystemWeb;
   
    using SystemWebUIWebControls;
   
    using SystemCollectionsGeneric;
   
    using WestGardenDAL;
   
    using WestGardenModel;
   
    namespace WestGardenWeb
   
    {
   
    public partial class ItemManageControl : SystemWebUIUserControl
   
    {
   
    private static IList<ItemDetails> itemdetails = new List<ItemDetails>()
   
    protected void Page_Load(object sender EventArgs e)
   
    {
   
    if (!IsPostBack)
   
    {
   
    BindFormView()
   
    ViewState[ImageUrl] = null;
   
    ViewState[SelectedCategoryId] = null;
   
    }
   
    }
   
    protected void fvwItemDetails_ModeChanging(object sender FormViewModeEventArgs e)
   
    {
   
    switch (eNewMode)
   
    {
   
    case FormViewModeEdit:
   
    thisfvwItemDetailsChangeMode(FormViewModeEdit)
   
    BindFormView()
   
    DropDownList ddl = (DropDownList)fvwItemDetailsFindControl(ddlCategories
   
    BindDropDownList(ddl)
   
    break;
   
    case FormViewModeReadOnly:
   
    thisfvwItemDetailsChangeMode(FormViewModeReadOnly)
   
    BindFormView()
   
    break;
   
    default:
   
    break;
   
    }
   
    }
   
    protected void fvwItemDetails_PreRender(object sender EventArgs e)
   
    {
   
    }
   
    protected void ddlCategories_SelectedIndexChanged(object sender EventArgs e)
   
    {
   
    DropDownList ddl = (DropDownList)fvwItemDetailsFindControl(ddlCategories
   
    ViewState[SelectedCategoryId] = ddlSelectedValue;
   
    }
   
    protected void btnUpload_Click(object sender EventArgs e)
   
    {
   
    FileUpload fup = (FileUpload)fvwItemDetailsFindControl(fupImage
   
    if (fupHasFile)
   
    {
   
    fupSaveAs(ServerMapPath(~/Images/Items/) + fupFileName)
   
    Image img = (Image)fvwItemDetailsFindControl(imgItem
   
    imgImageUrl = ~/Images/Items/ + fupFileNameToString()
   
    ViewState[ImageUrl] = ~/Images/Items/ + fupFileNameToString()
   
    }
   
    else
   
    {
   
    ResponseWrite(<script>alert(請先浏覽並選擇圖片)</script>
   
    }
   
    }
   
    protected void fvwItemDetails_ItemUpdating(object sender FormViewUpdateEventArgs e)
   
    {
   
    if (ViewState[ImageUrl] != null)
   
    {
   
    itemdetails[]Image = ViewState[ImageUrl]ToString()
   
    }
   
    if (ViewState[SelectedCategoryId] != null)
   
    {
   
    DropDownList ddl = (DropDownList)fvwItemDetailsFindControl(ddlCategories
   
    itemdetails[]CategoryId = ViewState[SelectedCategoryId]ToString()
   
    }
   
    TextBox txtname = (TextBox)fvwItemDetailsFindControl(txtName
   
    itemdetails[]Name = txtnameText;
   
    TextBox txtPrice = (TextBox)fvwItemDetailsFindControl(txtPrice
   
    itemdetails[]Price = decimalParse(txtPriceText)
   
    TextBox txtDescn = (TextBox)fvwItemDetailsFindControl(txtDescn
   
    itemdetails[]Descn = txtDescnText;
   
    TextBox txtSupplyTime = (TextBox)fvwItemDetailsFindControl(txtSupplyTime
   
    itemdetails[]SupplyTime = txtSupplyTimeText;
   
    TextBox txtSupplyDate = (TextBox)fvwItemDetailsFindControl(txtSupplyDate
   
    itemdetails[]SupplyDate = txtSupplyDateText;
   
    TextBox txtSupplyArea = (TextBox)fvwItemDetailsFindControl(txtSupplyArea
   
    itemdetails[]SupplyArea = txtSupplyAreaText;
   
    Item item = new Item()
   
    itemUpdateItem(itemdetails[])
   
    fvwItemDetailsChangeMode(FormViewModeReadOnly)
   
    BindFormView()
   
    ViewState[ImageUrl] = null;
   
    ViewState[SelectedCategoryId] = null;
   
    }
   
    private void BindFormView()
   
    {
   
    int itemKey = intParse(RequestQueryString[itemId])
   
    Item item = new Item()
   
    itemdetails = itemGetItemDetailsByItemId(itemKey)
   
    fvwItemDetailsDataSource = itemdetails;
   
    fvwItemDetailsDataBind()
   
    }
   


    private void BindDropDownList(DropDownList ddl)
   
    {
   
    ddlDataSource = new Category()GetCategories()
   
    ddlDataTextField = Name;
   
    ddlDataValueField = CategoryId;
   
    ddlDataBind()
   
    string selectcategory = RequestQueryString[categoryId]ToString()
   
    if (selectcategory != null)
   
    {
   
    ListItem selectedItem = ddlItemsFindByValue(selectcategory)
   
    if (selectedItem != null)
   
    selectedItemSelected = true;
   
    }
   
    }
   
    }
   
    }
   
    四數據訪問層DAL中的Itemcs類中添加更新函數UpdateItem()代碼如下
   
    [csharp] public void UpdateItem(ItemDetails item)
   
    {
   
    SqlParameter[] parms;
   
    parms = new SqlParameter[]
   
    {
   
    new SqlParameter(@ItemIdSqlDbTypeInt)
   
    new SqlParameter(@CategoryIdSqlDbTypeVarChar
   
    new SqlParameter(@NameSqlDbTypeVarChar
   
    new SqlParameter(@PriceSqlDbTypeDecimal
   
    new SqlParameter(@ImageSqlDbTypeVarChar
   
    new SqlParameter(@DescnSqlDbTypeVarChar
   
    new SqlParameter(@SupplyTimeSqlDbTypeVarChar
   
    new SqlParameter(@SupplyDateSqlDbTypeVarChar
   
    new SqlParameter(@SupplyAreaSqlDbTypeVarChar
   
    };
   
    parms[]Value = itemItemId;
   
    parms[]Value = itemCategoryId;
   
    parms[]Value = itemName;
   
    parms[]Value = itemPrice;
   
    parms[]Value = itemImage;
   
    parms[]Value = itemDescn;
   
    parms[]Value = itemSupplyTime;
   
    parms[]Value = itemSupplyDate;
   
    parms[]Value = itemSupplyArea;
   
    SqlHelperExecuteNonQuery(SqlHelperConnectionStringLocalTransaction CommandTypeText SQL_UPDATE_ITEM parms)
   
    }
   


From:http://tw.wingwit.com/Article/program/net/201311/13076.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.