쇼핑 몰 2 단계 요약 노트 1: 도움말 센터

도움말 센터 는 정적 페이지 를 만 들 고 연결 할 수 있 습 니 다.그러나 사이트 의 확장 성 을 고려 하여 도움말 센터 를 동적 페이지 로 만들어 나중에 배경 에서 내용 을 수정 할 수 있 도록 한다.1: 1 단계 에서 우 리 는 뉴스 센터 와 상품 주 제 를 위해 Shop뉴스 시트, 사실 도움말 센터 에서 도 이 시 계 를 사용 할 수 있 습 니 다. 도움말 센터 의 모든 항목 은 이미 만들어 진 글 페이지 로 볼 수 있 습 니 다. 이 표 에 'type' 을 수 동 으로 추가 하여 도움말 센터 로 합 니 다."글, title 은 도움말 센터 의 글 제목 입 니 다. 그러면 프론트 데스크 나 백 스테이지 에서 이 글 을 호출 할 수 있 습 니 다. 2: 프론트 데스크 를 통합 합 니 다: helper. aspx 페이지 를 만 들 고 홈 페이지 에 링크 를 추가 합 니 다."
            <td align="center">
                <a href="helper.aspx?title=    ">    </a>
            </td>

aspx 코드:
 <table width="100%" border="0">
                    <tr>
                        <td align="left" valign="top">
                            <ul class="aboutus">


                                <asp:Repeater ID="rep" runat="server">
                               <ItemTemplate>
                                 <li><a href='helper.aspx?title=<%#Eval("title") %>'><%#Eval("title") %></a></li>//           
                               </ItemTemplate>
                                </asp:Repeater>
                               


                            </ul>
                        </td>
                    </tr>
                    <tr>
                        <td class="aboutus_td" height="35" bgcolor="#CCCCCC">
                            &nbsp;     : 
                            <asp:Literal ID="litH1" runat="server"></asp:Literal>
                        </td>
                    </tr>
                    <tr>
                        <td style="text-align: left; padding: 10px;">
                            <asp:Literal ID="litBody" runat="server"></asp:Literal>
                        </td>
                    </tr>
                </table>

cs 코드:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

namespace Web
{
    public partial class aboutus : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //        
                rep.DataSource = new MyShop.DAL.NewsDAO().GetList("type='    '");
                rep.DataBind();

                
                string title=Request.QueryString["title"];
                if (string.IsNullOrEmpty(title))
                {
                    title = "    ";
                }
                litH1.Text = title;
                DataSet ds = new MyShop.DAL.NewsDAO().GetList("*","id","",1,1,"type='    ' and title='"+title+"'");
                if (ds.Tables.Count>0&&ds.Tables[0].Rows.Count>0)//          ,      0    
                {
                    litBody.Text = ds.Tables[0].Rows[0]["body"].ToString();
                }
            }
        }
    }
}

3: 백 스테이지 통합:
새 배경 페이지 helpChange. aspx aspx 코드:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
  
          <br />
    <asp:DropDownList ID="ddltitle" runat="server"  AutoPostBack="true"
        onselectedindexchanged="ddltitle_SelectedIndexChanged">
    </asp:DropDownList>
    <br />
    <asp:TextBox ID="txtbody" TextMode="MultiLine"  runat="server" Height="237px" Width="571px"></asp:TextBox>
    <br />
    <asp:Button ID="btnSave" runat="server" Text="  " onclick="btnSave_Click" />
  
    <asp:Literal ID="litmsg" runat="server"></asp:Literal>
  
    </form>
</body>
</html>

페이지 에서 드 롭 다운 목록 상 자 를 사용 하여 도움말 센터 의 하위 항목 을 표시 합 니 다. 아래 표 상자 의 사용 은 Repeater 컨트롤 과 유사 합 니 다.
드 롭 다운 목록 상자 사용:
1: 드 롭 다운 목록 상 자 를 더 블 클릭 하여 이 벤트 를 추가 하고 드 롭 다운 목록 상자 의 aspx 코드 에 추가 합 니 다.  AutoPostBack = "true" 속성, 이벤트 의 반환 값 을 자동 으로 되 돌려 줍 니 다.
2: 디 스 플레이 필드 와 필드 값 을 바 인 딩 한 다음 드 롭 다운 목록 에 데이터 원본 을 바 인 딩 합 니 다.
3: 이벤트 코드 쓰기.
뉴스 DAO 에 함수 추가
        //  body  ,      
        public void UpdateBody(string title, string body)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update Shop_news set body=@body where type='    ' and title=@title");

            Database db = DatabaseFactory.CreateDatabase();
            DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());

            db.AddInParameter(dbCommand, "title", DbType.String, title);
            db.AddInParameter(dbCommand, "body", DbType.AnsiString, body);

            db.ExecuteNonQuery(dbCommand);
        }

cs 코드:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;


namespace Web.admin
{
    public partial class helpChange : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //        
                ddltitle.DataTextField = "title";//          
                ddltitle.DataValueField = "title";//            
                ddltitle.DataSource = new MyShop.DAL.NewsDAO().GetList("type='    '");
                ddltitle.DataBind();
            }
        }


        //         
        protected void ddltitle_SelectedIndexChanged(object sender, EventArgs e)
        {
            string title = ddltitle.SelectedValue;
            DataSet ds = new MyShop.DAL.NewsDAO().GetList("*","id","",1,1,"type='    ' and title='"+title+"'");
            if (ds.Tables.Count>0&&ds.Tables[0].Rows.Count>0)
            {
                txtbody.Text = ds.Tables[0].Rows[0]["body"].ToString();
            }


        }
        //    
        protected void btnSave_Click(object sender, EventArgs e)
        {
            string title = ddltitle.SelectedValue;
            string body = txtbody.Text;
            // NewsDAO ,     UpdateBody  (    Update                 )
            new MyShop.DAL.NewsDAO().UpdateBody(title,body);
            litmsg.Text = "<span style='color:blue'>    </span>";
            txtbody.Text = "";
        }
    }
}

그러나 이 때 몇 가지 작은 문제 가 있 습 니 다. 첫째, 저장 에 성공 하면 litmsg 의 값 은 '저장 성공' 입 니 다. 이 때 드 롭 다운 목록 상자 에서 다른 하위 항목 을 선택 하 십시오. 이 힌트 는 여전히 존재 합 니 다. 둘째, 전체 helpChange. aspx 페이지 에 들 어 갔 을 때 드 롭 다운 목록 상자 에 표 시 됩 니 다.", 대응 하 는 아래 텍스트 상자 가 비어 있 습 니 다. 이것 도 수정 해 야 합 니 다. 완 선 된 cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

namespace Web.admin
{
    public partial class helpChange : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //        
                ddltitle.DataTextField = "title";//          
                ddltitle.DataValueField = "title";//            
                ddltitle.DataSource = new MyShop.DAL.NewsDAO().GetList("type='    '");
                ddltitle.DataBind();


                //         ,              ,    ,            ,         
                DataSet ds = new MyShop.DAL.NewsDAO().GetList("*", "id", "", 1, 1, "type='    ' and title='" + ddltitle.SelectedValue + "'");
                if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                {
                    txtbody.Text = ds.Tables[0].Rows[0]["body"].ToString();
                }
            }
        }

        //         
        protected void ddltitle_SelectedIndexChanged(object sender, EventArgs e)
        {
            string title = ddltitle.SelectedValue;
            DataSet ds = new MyShop.DAL.NewsDAO().GetList("*","id","",1,1,"type='    ' and title='"+title+"'");
            if (ds.Tables.Count>0&&ds.Tables[0].Rows.Count>0)
            {
                txtbody.Text = ds.Tables[0].Rows[0]["body"].ToString();
            }
            //                 ,                 
            litmsg.Text = "";
        }
        //    
        protected void btnSave_Click(object sender, EventArgs e)
        {
            string title = ddltitle.SelectedValue;
            string body = txtbody.Text;
            // NewsDAO ,     UpdateBody  (    Update                 )
            new MyShop.DAL.NewsDAO().UpdateBody(title,body);
            litmsg.Text = "<span style='color:blue'>    </span>";
            txtbody.Text = "";
        }
    }
}

마지막 으로 텍스트 상 자 는 온라인 편집기 로 만들어 야 합 니 다. 1: 맨 위 줄 코드 에 추가 합 니 다. ValidateRequest = "false" 속성 2: js 코드 를 추가 합 니 다.
<script src="../kindeditor/kindeditor.js" type="text/javascript"></script>  
     <script type="text/javascript">
         KE.show({
             id: 'txtbody',
             items: [
		'title', 'fontname', 'fontsize', '|', 'textcolor', 'bgcolor', 'bold',
		'italic', 'underline', 'strikethrough', 'removeformat', '|', 'image',
		'flash', 'media', 'advtable', 'hr', 'emoticons', 'link', 'unlink'
	],
             imageUploadJson: '/handler/upload_json.ashx'
         });  
        </script>  

최종 완벽 한 aspx 코드:
<%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="true" CodeBehind="helpChange.aspx.cs" Inherits="Web.admin.helpChange" %>

<!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>
    <script src="../kindeditor/kindeditor.js" type="text/javascript"></script>  
     <script type="text/javascript">
         KE.show({
             id: 'txtbody',
             items: [
		'title', 'fontname', 'fontsize', '|', 'textcolor', 'bgcolor', 'bold',
		'italic', 'underline', 'strikethrough', 'removeformat', '|', 'image',
		'flash', 'media', 'advtable', 'hr', 'emoticons', 'link', 'unlink'
	],
             imageUploadJson: '/handler/upload_json.ashx'
         });  
        </script>  
</head>
<body>
    <form id="form1" runat="server">
  
          <br />
    <asp:DropDownList ID="ddltitle" runat="server"  AutoPostBack="true"
        onselectedindexchanged="ddltitle_SelectedIndexChanged">
    </asp:DropDownList>
    <br />
    <asp:TextBox ID="txtbody" TextMode="MultiLine"  runat="server" Height="237px" Width="571px"></asp:TextBox>
    <br />
    <asp:Button ID="btnSave" runat="server" Text="  " onclick="btnSave_Click" />
  
    <asp:Literal ID="litmsg" runat="server"></asp:Literal>
  
    </form>
</body>
</html>

좋은 웹페이지 즐겨찾기