zoukankan      html  css  js  c++  java
  • Web——页面“传值、赋值”与页间“传值”

    前言

        前期我们学习C/S开发的时候,采用三层架构,U层的参数在每个层之间传来传去,那么现在我们接触到的B/S,在Web前端是如何与后台进行传值赋值呢?由于本人是菜鸟一枚,下面写的不恰当的地方,望路过的大神指点一二。

    内容

        以牛腩新闻发布系统中新闻管理为例,说明Web前端怎么与后台传值赋值,并且怎么在网页之间进行传值的。

    代码

    <span style="font-family:KaiTi_GB2312;font-size:18px;"><%@ Page Title="" Language="C#" MasterPageFile="~/admin/m_common.master" AutoEventWireup="true" CodeBehind="newsmanager.aspx.cs" Inherits="Web.admin.newsmanager1" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="m_contentPlaceHolder" runat="server">
        <div id ="camanager" class ="round2">
            <h3>新闻管理</h3>
            <div class ="con" >
                <div class="fontcolor">提示:点击新闻标题后可进行对该新闻评论的删除!</div>
                <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
                <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                    <ContentTemplate>
                          <table class="m_table">
                            <tr>
                                <th class ="xuhao">序号</th>
                                <th >标题</th>
                                <th class ="del">修改</th>
                                <th class ="del">删除</th>
                            </tr>
                              <%--<repeater控件对数据进行绑定,并且显示在页面上>--%>
                            <asp:Repeater ID="repNews" runat="server">
                                <ItemTemplate>
                                    <tr>
                                        <%--<将数据库中内容显示在网页上>--%>
                                        <td><%#Eval("id") %></td>
                                        <%--<进行页面之间传值,将本网页id号作为另一个页面的外键获得与另一个页面的联系>--%>
                                        <td><a href='../newscontent.aspx?newsid=<%#Eval("id") %>' target="_blank"><%#Eval("title") %></a></td>
                                        <td><a href='modnews.aspx?newsid=<%#Eval("id") %>' target="_blank">修改</a></td>
                                        <td>
                                            <%--<linkbutton一方面通过该按钮在后天编写方法,另一方面可以通过点击该按钮进行提示内容>--%>
                                            <asp:LinkButton ID="lbtnDel" OnClientClick="return confirm('删除新闻会连同其下评论一起删除,是否确认删除?')" OnClick="lbtnDel_Click" CommandArgument='<%#Eval("id") %>' runat="server">删除</asp:LinkButton>
                                        </td>
                                    </tr>
                                </ItemTemplate>
                            </asp:Repeater>
                        </table>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </div>
            <div class="footer" >
                <p> </p>
            </div>
        </div>
    </asp:Content></span>

        其中下面代码说明了怎么对数据源进行绑定,并且以表格的形式显示出来,怎么进行网页与网页之间进行传值的。

    • 前端

    <span style="font-family:KaiTi_GB2312;font-size:18px;">                      <table class="m_table">
                            <tr>
                                <th class ="xuhao">序号</th>
                                <th >标题</th>
                                <th class ="del">修改</th>
                                <th class ="del">删除</th>
                            </tr>
                              <%--<repeater控件对数据进行绑定,并且显示在页面上>--%>
                            <asp:Repeater ID="repNews" runat="server">
                                <ItemTemplate>
                                    <tr>
                                        <%--<将数据库中内容显示在网页上>--%>
                                        <td><%#Eval("id") %></td>
                                        <%--<进行页面之间传值,将本网页id号作为另一个页面的外键获得与另一个页面的联系>--%>
                                        <td><a href='../newscontent.aspx?newsid=<%#Eval("id") %>' target="_blank"><%#Eval("title") %></a></td>
                                        <td><a href='modnews.aspx?newsid=<%#Eval("id") %>' target="_blank">修改</a></td>
                                        <td>
                                            <%--<linkbutton一方面通过该按钮在后天编写方法,另一方面可以通过点击该按钮进行提示内容>--%>
                                            <asp:LinkButton ID="lbtnDel" OnClientClick="return confirm('删除新闻会连同其下评论一起删除,是否确认删除?')" OnClick="lbtnDel_Click" CommandArgument='<%#Eval("id") %>' runat="server">删除</asp:LinkButton>
                                        </td>
                                    </tr>
                                </ItemTemplate>
                            </asp:Repeater>
                        </table></span>

    • 后台

        表格显示(其实可以直接在前端给一个DataGrid控件直接绑定数据源)但是牛腩老师后来由于某种原因没有采用那种方法(这个没有仔细研究过)

    <span style="font-family:KaiTi_GB2312;font-size:18px;">        #region 绑定新闻列表
            private void BindNews()
            {
                //绑定数据源,给前端repnews传值;
                repNews.DataSource = new NewsManager().SelectAll();
                repNews.DataBind();
            }
    #endregion</span>

    • 页面与页面直接传值(接受值语法)

    <span style="font-family:KaiTi_GB2312;font-size:18px;">            string newsid = Request.QueryString["newsid"];</span>

        

        以牛腩新闻发布系统中添加新闻为例,说明Web前端是怎么与后台进行传值、赋值;

    代码

    <span style="font-family:KaiTi_GB2312;font-size:18px;"> <%@ Page Title="添加新闻_后台管理——牛腩新闻发布系统" Language="C#" MasterPageFile="~/admin/m_common.master" AutoEventWireup="true" ValidateRequest="false" CodeBehind="addnews.aspx.cs" Inherits="Web.admin.addnews" %>
    <%@ Register assembly="FreeTextBox" namespace="FreeTextBoxControls" tagprefix="FTB" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="m_contentPlaceHolder" runat="server">
       <div id ="addnews" class ="round2">
            <h3>添加新闻</h3>
            <div class ="con" >
                <%--<声明DropDownlist下拉框控件,用于接受后台给的参数——“控件的赋值”>--%>
                <p>        新闻分类:<asp:DropDownList ID="ddlCategory" runat="Server"></asp:DropDownList>
                </p>
                <%--<声明textbox文本框控件,用于接受后台给的参数——“控件的赋值”>--%>
               <p>        新闻标题:<asp:TextBox ID="txtTitle" runat="server" CssClass ="newstitle"></asp:TextBox></p>
                <p>        新闻内容:</p>
                <p>
                            <%--<asp:TextBox ID="txtContent" runat="server" TextMode ="MultiLine" CssClass ="newscontent" ></asp:TextBox>--%>
                     
                        <FTB:FreeTextBox Text="" Language="zh-CN" ToolbarStyleConfiguration="OfficeMac" ID="ftbContent" Width="500" Height="200" runat="server">
                    </FTB:FreeTextBox>
                </p>
                <p>        <asp:Button ID="btnAdd" runat="server" Text="添加新闻" OnClick="btnAdd_Click" /></p>
            </div>
            <div class="footer" >
                <p> </p>
                
            </div>
        </div>
    </asp:Content></span>

    • 其中Web前端是怎么与后台进行传值、赋值

    <span style="font-family:KaiTi_GB2312;font-size:18px;"><div class ="con" >
                <%--<声明DropDownlist下拉框控件,用于接受后台给的参数——“控件的赋值”>--%>
                <p>        新闻分类:<asp:DropDownList ID="ddlCategory" runat="Server"></asp:DropDownList>
                </p>
                <%--<声明textbox文本框控件,用于接受后台给的参数——“控件的赋值”>--%>
               <p>        新闻标题:<asp:TextBox ID="txtTitle" runat="server" CssClass ="newstitle"></asp:TextBox></p>
                <p>        新闻内容:</p>
                <p>
                            <%--<asp:TextBox ID="txtContent" runat="server" TextMode ="MultiLine" CssClass ="newscontent" ></asp:TextBox>--%>
                     
                        <FTB:FreeTextBox Text="" Language="zh-CN" ToolbarStyleConfiguration="OfficeMac" ID="ftbContent" Width="500" Height="200" runat="server">
                    </FTB:FreeTextBox>
                </p>
                <p>        <asp:Button ID="btnAdd" runat="server" Text="添加新闻" OnClick="btnAdd_Click" /></p>
            </div></span>

    • 后台

    <span style="font-family:KaiTi_GB2312;font-size:18px;">        protected void btnAdd_Click(object sender, EventArgs e)
            {
                //给前端赋值传值;
                string title = txtTitle.Text.Trim();
                string content = ftbContent.Text.Trim();
                string caid = ddlCategory.SelectedValue;
    
                News n = new News(title, content, caid);
                bool b = new NewsManager().insert(n);
    
                if (b)
                {
                    Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript'defer>alert('新闻添加成功!');</script>");
                }
                else
                {
                    Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript'defer>alert('新闻添加失败,请联系系统管理员!');</script>");
                }
                //清空标题和内容;
                txtTitle.Text = "";
                ftbContent.Text = "";
            }</span>

        其实,敲完牛腩新闻发布系统后,自己在验收的时候收获最多,通过师父指点,体会到了B/S的魅力之处。

    小结

        1、变是永远不变的。不管是C/S还是B/S,离不开增删改查。

        2、学会用旧知识消灭新知识。


    感谢您的宝贵时间~~~

  • 相关阅读:
    AcWing 1135. 新年好 图论 枚举
    uva 10196 将军 模拟
    LeetCode 120. 三角形最小路径和 dp
    LeetCode 350. 两个数组的交集 II 哈希
    LeetCode 174. 地下城游戏 dp
    LeetCode 面试题 16.11.. 跳水板 模拟
    LeetCode 112. 路径总和 递归 树的遍历
    AcWing 1129. 热浪 spfa
    Thymeleaf Javascript 取值
    Thymeleaf Javascript 取值
  • 原文地址:https://www.cnblogs.com/zhoulitong/p/6412409.html
Copyright © 2011-2022 走看看