Cấp bậc tác giả:

TRAINING

[TUT]Xây dựng Website Bán Hàng - Xây dựng Form Quản trị Admin Control Panel(P3)

Được viết bởi QuangIT ngày 22/03/2013 lúc 09:50 PM
Phần trước Tôi đã hướng dẫn các bạn xây dựng chức năng Login và Quản lý User(thành viên), trong đó Tôi có hướng dẫn cách sử dụng code gene một cách hiệu quả.
  • 0
  • 15083
Tải tệp tin: Click ở đây

[TUT]Xây dựng Website Bán Hàng - Xây dựng Form Quản trị Admin Control Panel(P3)

Phần trước Tôi đã hướng dẫn các bạn xây dựng chức năng Login và Quản lý User(thành viên), trong đó Tôi có hướng dẫn cách sử dụng code gene một cách hiệu quả.
Bài này Tôi sẽ hướng dẫn nốt những phần còn thiếu trong trang quản trị. Một số thao tác mình không cần phải ghi kỹ, vì nếu bạn theo dõi các phần trước, bạn sẽ biết cách làm.
Đầu tiên là trang quảng cáo(Advertise)
Advertise.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Admins/Administrator.master" AutoEventWireup="true"
    CodeFile="Advertise.aspx.cs" Inherits="Admins_Advertise" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <div class="title">
        Quản trị Advertise</div>
    <asp:Panel ID="pnShow" runat="server" Width="100%">
        <table style="border-collapse: collapse; background-color: #D0DEF0;">
            <tr>
                <td>
                    <asp:Button ID="btnThem" runat="server" CssClass="btnthem" Text="Thêm mới" OnClick="btnThem_Click"
                        ToolTip="Thêm mới" />
                </td>
                <td>
                    <asp:Button ID="btnXoa" runat="server" CssClass="btnXoa" Text="Xóa" OnClick="btnXoa_Click"
                        ToolTip="Xóa" />
                </td>
            </tr>
        </table>
        <asp:DataGrid ID="grdAdvertise" runat="server" AllowPaging="true" AutoGenerateColumns="false"
            CellPadding="4" ForeColor="#333333" Width="100%" PageSize="10" 
            onitemcommand="grdAdvertise_ItemCommand" 
            onitemdatabound="grdAdvertise_ItemDataBound" 
            onpageindexchanged="grdAdvertise_PageIndexChanged">
            <AlternatingItemStyle BorderColor="White" />
            <HeaderStyle CssClass="trHeader" />
            <Columns>
                <asp:TemplateColumn>
                    <HeaderTemplate>
                        <asp:CheckBox ID="chkSelectAll" runat="server" AutoPostBack="false" />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:CheckBox ID="chkSelect" runat="server" />
                    </ItemTemplate>
                    <ItemStyle CssClass="tdCenter" />
                </asp:TemplateColumn>
                <asp:BoundColumn DataField="Name" HeaderText="Tên"></asp:BoundColumn>
                <asp:BoundColumn DataField="Url" HeaderText="Url"></asp:BoundColumn>
                <asp:BoundColumn DataField="Link" HeaderText="Link"></asp:BoundColumn>
                <asp:BoundColumn DataField="Target" HeaderText="Target"></asp:BoundColumn>
                <asp:BoundColumn DataField="Postion" HeaderText="Position"></asp:BoundColumn>
                <asp:BoundColumn DataField="Order" HeaderText="Order"></asp:BoundColumn>
                <asp:BoundColumn DataField="Status" HeaderText="Trạng Thái"></asp:BoundColumn>
                <asp:TemplateColumn>
                    <HeaderTemplate>
                        Chức năng</HeaderTemplate>
                    <ItemTemplate>
                        <asp:LinkButton ID="lbt1" runat="server" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Id") %>'
                            CommandName="Edit" CssClass="edit" ToolTip="Sửa"></asp:LinkButton>
                        |
                        <asp:LinkButton ID="lbt2" runat="server" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Id") %>'
                            CommandName="Delete" CssClass="delete" ToolTip="Xóa" OnClientClick="return confirm(Bạn có chắc chắn muốn xóa không?)"></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateColumn>
            </Columns>
            <EditItemStyle BackColor="#2461BF" />
            <HeaderStyle BackColor="#507CD1" Font-Bold="true" ForeColor="White" />
            <ItemStyle BackColor="#EFE3F8" />
            <PagerStyle BackColor="#F3F8FE" Font-Bold="true" ForeColor="Blue" HorizontalAlign="Center"
                Mode="NumericPages" />
            <SelectedItemStyle BackColor="#D1D0F1" Font-Bold="true" ForeColor="#333333" />
        </asp:DataGrid>
    </asp:Panel>
    <asp:Panel ID="pnUpdate" runat="server">
        <table cellpadding="0" width="100%" style="border-collapse: collapse; margin-left: 10px;" border="1">
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="lblId" Text="Id" runat="server" ></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtId" runat="server" Visible="false"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label1" Text="Name" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label4" Text="Url" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtUrl" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label5" Text="Width" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtWidth" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label6" Text="Height" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtHeight" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label7" Text="Link" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtLink" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label8" Text="Target" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtTarget" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label9" Text="Position" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtPosition" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label10" Text="Order" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtOrder" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label3" Text="Trạng thái" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:DropDownList ID="cboTrangThai" runat="server">
                        <asp:ListItem Value="1">Sử dụng</asp:ListItem>
                        <asp:ListItem Value="0">Cần sử dụng</asp:ListItem>
                    </asp:DropDownList>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                </td>
                <td>
                    <asp:LinkButton ID="lbUpdate" runat="server" CssClass="update" OnClick="lbUpdate_Click">Cập nhật</asp:LinkButton>
                    <asp:LinkButton ID="lbBack" runat="server" CssClass="back" OnClick="lbBack_Click">Trở lại</asp:LinkButton>
                </td>
            </tr>
        </table>
    </asp:Panel>
</asp:Content>

Advertise.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BanHangTest.Entities;
using BanHangTest.Data;

public partial class Admins_Advertise : System.Web.UI.Page
{
    private static bool insert;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Session["folder"] = "Advertise";
            BindGrid();
        }
    }

    public void BindGrid()
    {
        TList<Advertise> TList_ad = DataRepository.AdvertiseProvider.GetAll();
        grdAdvertise.DataSource = TList_ad;
        grdAdvertise.DataBind();
    }
    protected void btnThem_Click(object sender, EventArgs e)
    {
        pnShow.Visible = false;
        pnUpdate.Visible = true;
        Common.ResetControlValues(this);
        Session["upload"] = null;
        insert = true;
    }
    protected void btnXoa_Click(object sender, EventArgs e)
    {
        pnShow.Visible = true;
        pnUpdate.Visible = false;
    }
    protected void lbUpdate_Click(object sender, EventArgs e)
    {
        string images = Session["upload"] == null ? "" : Session["upload"].ToString();

        #region[TestInput]
        if (txtName.Text.Trim().Equals(""))
        {
            WebMessage.Show("Tên không thể trống!");
            txtName.Focus();
            return;
        }
        if (txtUrl.Text.Trim().Equals(""))
        {
            WebMessage.Show("Url không thể trống!");
            txtUrl.Focus();
            return;
        }
        if (txtWidth.Text.Trim().Equals(""))
        {
            WebMessage.Show("Width không thể trống!");
            txtWidth.Focus();
            return;
        }
        if (txtHeight.Text.Trim().Equals(""))
        {
            WebMessage.Show("Height không thể trống!");
            txtHeight.Focus();
            return;
        }
        if (txtLink.Text.Trim().Equals(""))
        {
            WebMessage.Show("Link không thể trống!");
            txtLink.Focus();
            return;
        }

        if (cboTrangThai.SelectedValue.Trim().Equals(""))
        {
            WebMessage.Show("Status không thể trống!");
            cboTrangThai.Focus();
            return;
        }
        #endregion

        var obj = new Advertise();
        
        obj.Name = txtName.Text;
        obj.Url = txtUrl.Text;
        obj.Width = Convert.ToInt32(txtWidth.Text);
        obj.Height = Convert.ToInt32(txtHeight.Text);
        obj.Link = txtLink.Text;
        obj.Target = Convert.ToInt32(txtTarget.Text);
        obj.Postion = Convert.ToInt32(txtPosition.Text);
        obj.Order = Convert.ToInt32(txtOrder.Text);
        obj.Status = Convert.ToInt32(cboTrangThai.SelectedValue);
        if (insert)
        {
            DataRepository.AdvertiseProvider.Insert(obj);
        }
        else
        {
            obj.Id = Convert.ToInt32(txtId.Text);
            DataRepository.AdvertiseProvider.Update(obj);
        }

        BindGrid();
        pnUpdate.Visible = false;
        pnShow.Visible = true;

        insert = false;
    }
    protected void lbBack_Click(object sender, EventArgs e)
    {
        pnShow.Visible = true;
        pnUpdate.Visible = false;
    }
    protected void grdAdvertise_ItemCommand(object source, DataGridCommandEventArgs e)
    {
        Advertise ad = new Advertise();
        ad.Id = Convert.ToInt32(e.CommandArgument.ToString());
        if (e.CommandName == "Edit")
        {
            insert = false;
            Advertise adv = DataRepository.AdvertiseProvider.GetById(ad.Id);//UserService.db.User_GetById(id);
            txtId.Text = ad.Id.ToString();
            txtName.Text = adv.Name.ToString();
            txtUrl.Text = adv.Url.ToString();
            txtWidth.Text = adv.Width.ToString();
            txtHeight.Text = adv.Height.ToString();
            txtLink.Text = adv.Link.ToString();
            txtTarget.Text = adv.Target.ToString();
            txtPosition.Text = adv.Postion.ToString();
            txtOrder.Text = adv.Order.ToString();
            cboTrangThai.SelectedValue = adv.Status.ToString();
            pnUpdate.Visible = true;
            pnShow.Visible = false;
        }
        else
        {
            DataRepository.AdvertiseProvider.Delete(ad.Id);
            BindGrid();
        }
    }
    protected void grdAdvertise_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
    {
        grdAdvertise.CurrentPageIndex = e.NewPageIndex;
        BindGrid();
    }
    protected void grdAdvertise_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
        ListItemType itemType = e.Item.ItemType;
        if ((itemType != ListItemType.Footer) && (itemType != ListItemType.Separator))
        {
            if (itemType == ListItemType.Header)
            {
                object checkBox = e.Item.FindControl("chkSelectAll");
                if (checkBox != null)
                {
                    ((CheckBox)checkBox).Attributes.Add("onClick", "Javascript:chkSelectAll OnClick(this)");
                }
            }
            else
            {
                string tableRowId = grdAdvertise.ClientID + "_row" + e.Item.ItemIndex.ToString();
                e.Item.Attributes.Add("id", tableRowId);
                object checkBox = e.Item.FindControl("chkSelect");
                if (checkBox != null)
                {
                    e.Item.Attributes.Add("onMouseMove", "Javascript:chkSelect OnMouseMove(this)");
                    e.Item.Attributes.Add("onMouseOut", "Javascript:chkSelect OnMouseMove(this," + e.Item.ItemIndex + ")");
                    ((CheckBox)checkBox).Attributes.Add("onClick", "Javascript:chkSelectAll OnClick(this," + e.Item.ItemIndex + ")");

                }
            }
        }
    }
}

advertise.jpg

GroupProduct.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Admins/Administrator.master" AutoEventWireup="true" CodeFile="GroupProduct.aspx.cs" Inherits="Admins_GroupProduct" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <div class="title">
        Quản trị Group Product</div>
    <asp:Panel ID="pnShow" runat="server" Width="100%">
        <table style="border-collapse: collapse; background-color: #D0DEF0;">
            <tr>
                <td>
                    <asp:Button ID="btnThem" runat="server" CssClass="btnthem" Text="Thêm mới" OnClick="btnThem_Click"
                        ToolTip="Thêm mới" />
                </td>
                <td>
                    <asp:Button ID="btnXoa" runat="server" CssClass="btnXoa" Text="Xóa" OnClick="btnXoa_Click"
                        ToolTip="Xóa" />
                </td>
            </tr>
        </table>
        <asp:DataGrid ID="grdGroupProduct" runat="server" AllowPaging="true" AutoGenerateColumns="false"
            CellPadding="4" ForeColor="#333333" Width="100%" PageSize="10" 
            onitemcommand="grdGroupProduct_ItemCommand" 
            onitemdatabound="grdGroupProduct_ItemDataBound" onpageindexchanged="grdGroupProduct_PageIndexChanged" 
            >
            <AlternatingItemStyle BorderColor="White" />
            <HeaderStyle CssClass="trHeader" />
            <Columns>
                <asp:TemplateColumn>
                    <HeaderTemplate>
                        <asp:CheckBox ID="chkSelectAll" runat="server" AutoPostBack="false" />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:CheckBox ID="chkSelect" runat="server" />
                    </ItemTemplate>
                    <ItemStyle CssClass="tdCenter" />
                </asp:TemplateColumn>
                <asp:BoundColumn DataField="Name" HeaderText="Tên"></asp:BoundColumn>
                <asp:BoundColumn DataField="Content" HeaderText="Content"></asp:BoundColumn>
                <asp:BoundColumn DataField="Images" HeaderText="Images"></asp:BoundColumn>
                <asp:BoundColumn DataField="Order" HeaderText="Order"></asp:BoundColumn>
                <asp:BoundColumn DataField="Status" HeaderText="Trạng Thái"></asp:BoundColumn>
                <asp:TemplateColumn>
                    <HeaderTemplate>
                        Chức năng</HeaderTemplate>
                    <ItemTemplate>
                        <asp:LinkButton ID="lbt1" runat="server" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Id") %>'
                            CommandName="Edit" CssClass="edit" ToolTip="Sửa"></asp:LinkButton>
                        |
                        <asp:LinkButton ID="lbt2" runat="server" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Id") %>'
                            CommandName="Delete" CssClass="delete" ToolTip="Xóa" OnClientClick="return confirm(Bạn có chắc chắn muốn xóa không?)"></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateColumn>
            </Columns>
            <EditItemStyle BackColor="#2461BF" />
            <HeaderStyle BackColor="#507CD1" Font-Bold="true" ForeColor="White" />
            <ItemStyle BackColor="#EFE3F8" />
            <PagerStyle BackColor="#F3F8FE" Font-Bold="true" ForeColor="Blue" HorizontalAlign="Center"
                Mode="NumericPages" />
            <SelectedItemStyle BackColor="#D1D0F1" Font-Bold="true" ForeColor="#333333" />
        </asp:DataGrid>
    </asp:Panel>
    <asp:Panel ID="pnUpdate" runat="server">
        <table cellpadding="0" width="100%" style="border-collapse: collapse; margin-left: 10px;" border="1">
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="lblId" Text="Id" runat="server" ></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtId" runat="server" Visible="false"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label1" Text="Name" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label4" Text="Content" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtContent" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label5" Text="Images" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtImages" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label10" Text="Order" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtOrder" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label3" Text="Trạng thái" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:DropDownList ID="cboTrangThai" runat="server">
                        <asp:ListItem Value="1">Sử dụng</asp:ListItem>
                        <asp:ListItem Value="0">Cần sử dụng</asp:ListItem>
                    </asp:DropDownList>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                </td>
                <td>
                    <asp:LinkButton ID="lbUpdate" runat="server" CssClass="update" OnClick="lbUpdate_Click">Cập nhật</asp:LinkButton>
                    <asp:LinkButton ID="lbBack" runat="server" CssClass="back" OnClick="lbBack_Click">Trở lại</asp:LinkButton>
                </td>
            </tr>
        </table>
    </asp:Panel>
</asp:Content>

GroupProduct.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BanHangTest.Entities;
using BanHangTest.Data;

public partial class Admins_GroupProduct : System.Web.UI.Page
{
    private static bool insert;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Session["folder"] = "GroupProduct";
            BindGrid();
        }
    }

    public void BindGrid()
    {
        TList<GroupProduct> TList_gp = DataRepository.GroupProductProvider.GetAll();
        grdGroupProduct.DataSource = TList_gp;
        grdGroupProduct.DataBind();
    }
    protected void btnThem_Click(object sender, EventArgs e)
    {
        pnShow.Visible = false;
        pnUpdate.Visible = true;
        Common.ResetControlValues(this);
        Session["upload"] = null;
        insert = true;
    }
    protected void btnXoa_Click(object sender, EventArgs e)
    {
        pnShow.Visible = true;
        pnUpdate.Visible = false;
    }
    protected void lbUpdate_Click(object sender, EventArgs e)
    {
        string images = Session["upload"] == null ? "" : Session["upload"].ToString();

        #region[TestInput]
        if (txtName.Text.Trim().Equals(""))
        {
            WebMessage.Show("Tên không thể trống!");
            txtName.Focus();
            return;
        }
        if (txtImages.Text.Trim().Equals(""))
        {
            WebMessage.Show("Images không thể trống!");
            txtImages.Focus();
            return;
        }
        if (txtContent.Text.Trim().Equals(""))
        {
            WebMessage.Show("Content không thể trống!");
            txtContent.Focus();
            return;
        }
        
        if (cboTrangThai.SelectedValue.Trim().Equals(""))
        {
            WebMessage.Show("Status không thể trống!");
            cboTrangThai.Focus();
            return;
        }
        #endregion

        var obj = new GroupProduct();

        obj.Name = txtName.Text;
        obj.Content = txtContent.Text;
        obj.Images = txtImages.Text;
        obj.Order = Convert.ToInt32(txtOrder.Text);
        obj.Status = Convert.ToInt32(cboTrangThai.SelectedValue);
        if (insert)
        {
            DataRepository.GroupProductProvider.Insert(obj);
        }
        else
        {
            obj.Id = Convert.ToInt32(txtId.Text);
            DataRepository.GroupProductProvider.Update(obj);
        }

        BindGrid();
        pnUpdate.Visible = false;
        pnShow.Visible = true;

        insert = false;
    }
    protected void lbBack_Click(object sender, EventArgs e)
    {
        pnShow.Visible = true;
        pnUpdate.Visible = false;
    }
    protected void grdGroupProduct_ItemCommand(object source, DataGridCommandEventArgs e)
    {
        GroupProduct gp = new GroupProduct();
        gp.Id = Convert.ToInt32(e.CommandArgument.ToString());
        if (e.CommandName == "Edit")
        {
            insert = false;
            GroupProduct gpd = DataRepository.GroupProductProvider.GetById(gp.Id);//UserService.db.User_GetById(id);
            txtId.Text = gp.Id.ToString();
            txtName.Text = gpd.Name.ToString();
            txtContent.Text = gpd.Content.ToString();
            txtImages.Text = gpd.Images.ToString();
            txtOrder.Text = gpd.Order.ToString();
            cboTrangThai.SelectedValue = gpd.Status.ToString();
            pnUpdate.Visible = true;
            pnShow.Visible = false;
        }
        else
        {
            DataRepository.GroupProductProvider.Delete(gp.Id);
            BindGrid();
        }
    }
    protected void grdGroupProduct_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
        ListItemType itemType = e.Item.ItemType;
        if ((itemType != ListItemType.Footer) && (itemType != ListItemType.Separator))
        {
            if (itemType == ListItemType.Header)
            {
                object checkBox = e.Item.FindControl("chkSelectAll");
                if (checkBox != null)
                {
                    ((CheckBox)checkBox).Attributes.Add("onClick", "Javascript:chkSelectAll OnClick(this)");
                }
            }
            else
            {
                string tableRowId = grdGroupProduct.ClientID + "_row" + e.Item.ItemIndex.ToString();
                e.Item.Attributes.Add("id", tableRowId);
                object checkBox = e.Item.FindControl("chkSelect");
                if (checkBox != null)
                {
                    e.Item.Attributes.Add("onMouseMove", "Javascript:chkSelect OnMouseMove(this)");
                    e.Item.Attributes.Add("onMouseOut", "Javascript:chkSelect OnMouseMove(this," + e.Item.ItemIndex + ")");
                    ((CheckBox)checkBox).Attributes.Add("onClick", "Javascript:chkSelectAll OnClick(this," + e.Item.ItemIndex + ")");

                }
            }
        }
    }
    protected void grdGroupProduct_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
    {
        grdGroupProduct.CurrentPageIndex = e.NewPageIndex;
        BindGrid();
    }
}

GroupProduct.jpg

Product.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Admins/Administrator.master" AutoEventWireup="true"
    CodeFile="Product.aspx.cs" Inherits="Admins_Product" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <div class="title">
        Quản trị Product</div>
    <asp:Panel ID="pnShow" runat="server" Width="100%">
        <table style="border-collapse: collapse; background-color: #D0DEF0;" width="100%"
            cellpadding="0" border="0">
            <tr>
                <td class="name_fild_row">
                    Lựa chọn dbo:&nbsp<asp:DropDownList ID="dllGroupProduct_Id" runat="server">
                    </asp:DropDownList>
                    <asp:Button ID="btnShow" runat="server" Text="Hiển thị" 
                        onclick="btnShow_Click" />
                </td>
            </tr>
        </table>
        <table style="border-collapse: collapse; background-color: #D0DEF0;">
            <tr>
                <td>
                    <asp:Button ID="btnThem" runat="server" CssClass="btnthem" Text="Thêm mới" OnClick="btnThem_Click"
                        ToolTip="Thêm mới" />
                </td>
                <td>
                    <asp:Button ID="btnXoa" runat="server" CssClass="btnXoa" Text="Xóa" OnClick="btnXoa_Click"
                        ToolTip="Xóa" />
                </td>
            </tr>
        </table>
        <asp:DataGrid ID="grdProduct" runat="server" AllowPaging="true" AutoGenerateColumns="false"
            CellPadding="4" ForeColor="#333333" Width="100%" PageSize="10" 
            onitemcommand="grdProduct_ItemCommand" 
            onitemdatabound="grdProduct_ItemDataBound" 
            onpageindexchanged="grdProduct_PageIndexChanged" >
            <AlternatingItemStyle BorderColor="White" />
            <HeaderStyle CssClass="trHeader" />
            <Columns>
                <asp:TemplateColumn>
                    <HeaderTemplate>
                        <asp:CheckBox ID="chkSelectAll" runat="server" AutoPostBack="false" />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:CheckBox ID="chkSelect" runat="server" />
                    </ItemTemplate>
                    <ItemStyle CssClass="tdCenter" />
                </asp:TemplateColumn>
                <asp:BoundColumn DataField="Name" HeaderText="Tên"></asp:BoundColumn>
                <asp:BoundColumn DataField="Price" HeaderText="Price"></asp:BoundColumn>
                <asp:BoundColumn DataField="Image" HeaderText="Image"></asp:BoundColumn>
                <asp:BoundColumn DataField="PriceNew" HeaderText="PriceNew"></asp:BoundColumn>
                <asp:BoundColumn DataField="Date" HeaderText="Date"></asp:BoundColumn>
                <asp:BoundColumn DataField="Order" HeaderText="Order"></asp:BoundColumn>
                <asp:BoundColumn DataField="Status" HeaderText="Trạng Thái"></asp:BoundColumn>
                <asp:TemplateColumn>
                    <HeaderTemplate>
                        Chức năng</HeaderTemplate>
                    <ItemTemplate>
                        <asp:LinkButton ID="lbt1" runat="server" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Id") %>'
                            CommandName="Edit" CssClass="edit" ToolTip="Sửa"></asp:LinkButton>
                        |
                        <asp:LinkButton ID="lbt2" runat="server" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Id") %>'
                            CommandName="Delete" CssClass="delete" ToolTip="Xóa" OnClientClick="return confirm(Bạn có chắc chắn muốn xóa không?)"></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateColumn>
            </Columns>
            <EditItemStyle BackColor="#2461BF" />
            <HeaderStyle BackColor="#507CD1" Font-Bold="true" ForeColor="White" />
            <ItemStyle BackColor="#EFE3F8" />
            <PagerStyle BackColor="#F3F8FE" Font-Bold="true" ForeColor="Blue" HorizontalAlign="Center"
                Mode="NumericPages" />
            <SelectedItemStyle BackColor="#D1D0F1" Font-Bold="true" ForeColor="#333333" />
        </asp:DataGrid>
    </asp:Panel>
    <asp:Panel ID="pnUpdate" runat="server">
        <table cellpadding="0" width="100%" style="border-collapse: collapse; margin-left: 10px;"
            border="1">
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="lblId" Text="Id" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtId" runat="server" Visible="false"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label1" Text="Name" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label4" Text="Detail" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtDetail" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label5" Text="Price" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtPrice" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label6" Text="Image" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtImage" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label7" Text="PriceNew" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtPriceNew" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label8" Text="Date" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtDate" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label10" Text="Order" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtOrder" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label3" Text="Trạng thái" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:DropDownList ID="cboTrangThai" runat="server">
                        <asp:ListItem Value="1">Sử dụng</asp:ListItem>
                        <asp:ListItem Value="0">Cần sử dụng</asp:ListItem>
                    </asp:DropDownList>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                    <asp:Label ID="Label2" Text="Nhóm Sản phẩm" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:DropDownList ID="dllGroupProduct_Id_Update" runat="server">
                    </asp:DropDownList>
                </td>
            </tr>
            <tr>
                <td width="150px" class="name_fild_row">
                </td>
                <td>
                    <asp:LinkButton ID="lbUpdate" runat="server" CssClass="update" OnClick="lbUpdate_Click">Cập nhật</asp:LinkButton>
                    <asp:LinkButton ID="lbBack" runat="server" CssClass="back" OnClick="lbBack_Click">Trở lại</asp:LinkButton>
                </td>
            </tr>
        </table>
    </asp:Panel>
</asp:Content>

Product.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BanHangTest.Entities;
using BanHangTest.Data;

public partial class Admins_Product : System.Web.UI.Page
{
    private static bool insert;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Session["folder"] = "Product";
            BindGrid();
            ShowDLL();
        }
    }
    protected void btnShow_Click(object sender, EventArgs e)
    {
        TList<Product> TList_pr = DataRepository.ProductProvider.GetByGroupProductId(Convert.ToInt32(dllGroupProduct_Id.SelectedValue));
        grdProduct.DataSource = TList_pr;
        grdProduct.DataBind();
    }

    public void BindGrid()
    {
        TList<Product> TList_pr = DataRepository.ProductProvider.GetAll();
        grdProduct.DataSource = TList_pr;
        grdProduct.DataBind();
    }

    protected void lbUpdate_Click(object sender, EventArgs e)
    {
        string images = Session["upload"] == null ? "" : Session["upload"].ToString();

        #region[TestInput]
        if (txtName.Text.Trim().Equals(""))
        {
            WebMessage.Show("Tên không thể trống!");
            txtName.Focus();
            return;
        }
        if (txtDetail.Text.Trim().Equals(""))
        {
            WebMessage.Show("Detail không thể trống!");
            txtDetail.Focus();
            return;
        }
        if (txtPrice.Text.Trim().Equals(""))
        {
            WebMessage.Show("Price không thể trống!");
            txtPrice.Focus();
            return;
        }
        if (txtImage.Text.Trim().Equals(""))
        {
            WebMessage.Show("Image không thể trống!");
            txtImage.Focus();
            return;
        }
        if (txtPriceNew.Text.Trim().Equals(""))
        {
            WebMessage.Show("PriceNew không thể trống!");
            txtPriceNew.Focus();
            return;
        }
        if (txtDate.Text.Trim().Equals(""))
        {
            WebMessage.Show("Date không thể trống!");
            txtDate.Focus();
            return;
        }
        if (txtOrder.Text.Trim().Equals(""))
        {
            WebMessage.Show("Order không thể trống!");
            txtOrder.Focus();
            return;
        }

        if (cboTrangThai.SelectedValue.Trim().Equals(""))
        {
            WebMessage.Show("Status không thể trống!");
            cboTrangThai.Focus();
            return;
        }
        if (dllGroupProduct_Id_Update.SelectedValue.Trim().Equals(""))
        {
            WebMessage.Show("GroupProduct_Id không thể trống!");
            dllGroupProduct_Id_Update.Focus();
            return;
        }
        #endregion

        var obj = new Product();

        obj.Name = txtName.Text;
        obj.Detail = txtDetail.Text;
        obj.Price = Convert.ToDouble(txtPrice.Text);
        obj.Image = txtImage.Text;
        obj.PriceNew = Convert.ToDouble(txtPriceNew.Text);
        obj.Date = Convert.ToDateTime(txtDate.Text);
        obj.Order = Convert.ToInt32(txtOrder.Text);
        obj.Status = Convert.ToInt32(cboTrangThai.SelectedValue);
        obj.GroupProductId = Convert.ToInt32(dllGroupProduct_Id_Update.SelectedValue);
        if (insert)
        {
            DataRepository.ProductProvider.Insert(obj);
        }
        else
        {
            obj.Id = Convert.ToInt32(txtId.Text);
            DataRepository.ProductProvider.Update(obj);
        }

        BindGrid();
        pnUpdate.Visible = false;
        pnShow.Visible = true;

        insert = false;
    }

    protected void lbBack_Click(object sender, EventArgs e)
    {
        pnShow.Visible = true;
        pnUpdate.Visible = false;
    }

    private void ShowDLL()
    {
        TList<GroupProduct> TList_GroupProduct = DataRepository.GroupProductProvider.GetAll();
        dllGroupProduct_Id.DataSource = TList_GroupProduct;
        dllGroupProduct_Id.DataTextField = "Name";
        dllGroupProduct_Id.DataValueField = "Id";
        dllGroupProduct_Id.DataBind();
        dllGroupProduct_Id_Update.DataSource = TList_GroupProduct;
        dllGroupProduct_Id_Update.DataTextField = "Name";
        dllGroupProduct_Id_Update.DataValueField = "Id";
        dllGroupProduct_Id_Update.DataBind();
    }

    protected void grdProduct_ItemCommand(object source, DataGridCommandEventArgs e)
    {
        Product pr = new Product();
        pr.Id = Convert.ToInt32(e.CommandArgument.ToString());
        if (e.CommandName == "Edit")
        {
            insert = false;
            Product prd = DataRepository.ProductProvider.GetById(pr.Id);//UserService.db.User_GetById(id);
            txtId.Text = pr.Id.ToString();
            txtName.Text = prd.Name.ToString();
            txtDetail.Text = prd.Detail.ToString();
            txtPrice.Text = prd.Price.ToString();
            txtImage.Text = prd.Image.ToString();
            txtPriceNew.Text = prd.PriceNew.ToString();
            txtDate.Text = prd.Date.ToString();
            txtOrder.Text = prd.Order.ToString();
            cboTrangThai.SelectedValue = prd.Status.ToString();
            dllGroupProduct_Id.SelectedValue = prd.GroupProductId.ToString();
            pnUpdate.Visible = true;
            pnShow.Visible = false;
        }
        else
        {
            DataRepository.ProductProvider.Delete(pr.Id);
            BindGrid();
        }
    }
    protected void grdProduct_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
        ListItemType itemType = e.Item.ItemType;
        if ((itemType != ListItemType.Footer) && (itemType != ListItemType.Separator))
        {
            if (itemType == ListItemType.Header)
            {
                object checkBox = e.Item.FindControl("chkSelectAll");
                if (checkBox != null)
                {
                    ((CheckBox)checkBox).Attributes.Add("onClick", "Javascript:chkSelectAll OnClick(this)");
                }
            }
            else
            {
                string tableRowId = grdProduct.ClientID + "_row" + e.Item.ItemIndex.ToString();
                e.Item.Attributes.Add("id", tableRowId);
                object checkBox = e.Item.FindControl("chkSelect");
                if (checkBox != null)
                {
                    e.Item.Attributes.Add("onMouseMove", "Javascript:chkSelect OnMouseMove(this)");
                    e.Item.Attributes.Add("onMouseOut", "Javascript:chkSelect OnMouseMove(this," + e.Item.ItemIndex + ")");
                    ((CheckBox)checkBox).Attributes.Add("onClick", "Javascript:chkSelectAll OnClick(this," + e.Item.ItemIndex + ")");

                }
            }
        }
    }
    protected void grdProduct_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
    {
        grdProduct.CurrentPageIndex = e.NewPageIndex;
        BindGrid();
    }
    protected void btnThem_Click(object sender, EventArgs e)
    {
        pnShow.Visible = false;
        pnUpdate.Visible = true;
        Common.ResetControlValues(this);
        Session["upload"] = null;
        insert = true;
    }
    protected void btnXoa_Click(object sender, EventArgs e)
    {
        pnShow.Visible = true;
        pnUpdate.Visible = false;
    }
}

product.jpg

Một số chức năng khác tương tự, bạn chỉ cần dựa vào mẫu để làm.
Vậy là xong phần quản trị, phần tới mình sẽ hướng dẫn xây dựng MasterPage trang chủ(giao diện người dùng) Website mua hàng.

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML