前言

前期我们学习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、学会用旧知识消灭新知识。

感谢您的宝贵时间~~~

Web——页面“传值、赋值”与页间“传值”的更多相关文章

  1. vue中父子间传值和非父子间传值

    vue传值一般分三种方式:父组件向子组件传值.子组件向父子间传值.非父子组件进行传值 一.父组件向子组件传值:父组件引用子组件后,通过数据绑定(v-bind)向子组件传值 父组件: <templ ...

  2. ASP.NET中使用Server.Transfer()方法在页间传值 实例

    以下代码在VS2008中测试通过 <%@ Page Language="C#" AutoEventWireup="true" CodeFile=" ...

  3. Vue中组件间传值常用的几种方式

    版本说明: vue-cli:3.0 一.父子组件间传值 1.props/$emit -父组件==>>子组件: 子组件中通过定义props接收父组件中通过v-bind绑定的数据 父组件代码 ...

  4. Vue学习(二)-Vue中组件间传值常用的几种方式

    版本说明:vue-cli:3.0 主要分为两类: 1.父子组件间的传值 2.非父子组件间的传值 1.父子组件间传值 父组件向子组件传值 第一种方式: props 父组件嵌套的子组件中,使用v-bind ...

  5. JAVASCRIPT实现的WEB页面跳转以及页面间传值方法

    在WEB页面中,我们实现页面跳转的方法通常是用LINK,BUTTON LINK ,IMG LINK等等,由用户点击某处,然后直接由浏览器帮我们跳转. 但有时候,需要当某事件触发时,我们先做一些操作,然 ...

  6. ASP.NET页面间传值总结

    本文我们将讨论的是ASP.NET页面间数据传递的几种方法,对此希望能帮助大家正确的理解ASP.NET页面间数据传递的用处以及便利性. Web页面是无状态的,服务器对每一次请求都认为来自不同用户,因此, ...

  7. MUI框架-02-注意事项-适用场景-实现页面间传值

    MUI框架-02-注意事项-适用场景-实现页面间传值 关于开发,我拷贝太多也没什么意义,就请查阅:官方文档:http://dev.dcloud.net.cn/mui/ui/ 快速入门 - 注意事项 有 ...

  8. Asp.net页面间传值方式汇总

    七种传值方式,分别是:URL传值,Session传值,Cookie传值,Server.Transfer传值,Application传值,利用某些控件的PostBackUrl属性和使用@Previous ...

  9. iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)

    iOS页面间传值实现方法:1.通过设置属性,实现页面间传值:2.委托delegate方式:3.通知notification方式:4.block方式:5.UserDefault或者文件方式:6.单例模式 ...

随机推荐

  1. jQuery中的动画理论干货

    [jQuery中的动画] 通过jQuery动画能够轻松地为页面添加精彩的视觉效果 [show()方法和hide()方法]1.show()方法和hide()方法是jQUERY中最基本的动画方法,相当于在 ...

  2. LSM Tree 学习笔记——本质是将随机的写放在内存里形成有序的小memtable,然后定期合并成大的table flush到磁盘

    The Sorted String Table (SSTable) is one of the most popular outputs for storing, processing, and ex ...

  3. hibernate的update、merge和saveOrUpdate的区别(转)

    1.首先 saveOrUpdate返回void 也就是什么都不返回 而merge会返回一个对象 2.其次 saveOrUpdate的做法是:自动判断该对象是否曾经持久化过,如果曾持久化过则使用upda ...

  4. Linux-NoSQL之MongoDB

    1.mongodb介绍 什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoD ...

  5. windows 安装 pytorch

    之前都在服务器上跑pytorch,近来发现新版本可在windows上跑了,甚是开心. 环境: windows7  python3 无CPU 步骤: 1. 确保确保python版本在3.5.3/3.6. ...

  6. Struts2 - 异常处理: exception-mapping 元素

    异常处理: exception-mapping 元素 在action方法中添加 int i=1/0; 请求action后,结果为: 在struts.xml中添加异常处理:exception-mappi ...

  7. 将session存入数据库,memcache的方法

    //存入数据库 <?phpif(!$con = mysql_connect('localhost','root','123456')){    die('连接数据库失败');}$link = m ...

  8. 本地未安装Oracle数据库,如何连接远程Oracle数据库

    方法一:用Navicat Premium连接 注意,这里用的要是黄色的版本,而不是只针对Mysql的绿色版本 工具栏选择[工具]-[选项],点击[其他-OCI]    你会发现有个OCI librar ...

  9. 2017-2018-1 20179215《Linux内核原理与分析》第八周作业

    实验:ELF文件格式与程序的编译链接 一.可执行文件的创建  从源代码到可执行程序所要经历的过程概述:  源代码(.c .cpp .h)经过c预处理器(cpp)后生成.i文件,编译器(cc1.cc1p ...

  10. 浏览器全屏的JS代码实现

    方法一:该方法是从一个网上的效果看到不错,然后自己就拿来下来实验了一下,还是比较满意度,下面直接给出代码 <!DOCTYPE HTML> <html lang="en-US ...