• 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、学会用旧知识消灭新知识。


    感谢您的宝贵时间~~~

  • 相关阅读:
    程序员练手项目
    文件描述符
    安卓深度探索(卷一)第九章
    安卓深度探索(卷一)第十章
    安卓深度探索(卷一)第八章
    安卓深度探索(卷一)第六章
    安卓深度探索(卷一)第七章
    安卓深度探索(卷一)第五章
    记一次联想A820t救砖线刷
    记一次酷派尚锋Y75刷机
  • 原文地址:https://www.cnblogs.com/zhoulitong/p/6412409.html
Copyright © 2020-2023  润新知