zoukankan      html  css  js  c++  java
  • .net嵌入c#代码(投票练习)

    .net嵌入c#代码(投票练习)

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <style type="text/css">
            * {
                margin:0px;
                padding:0px;
            }
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
            <asp:Label ID="lblTitle" runat="server"></asp:Label>
            <br />
            <br />
            <div id="vote">
                <asp:CheckBoxList ID="CheckBoxList1" runat="server">
                </asp:CheckBoxList>
                <br />
                <br />
                <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="提交" />
    &nbsp
             <input type="button" value="查看结果" onclick="xianshi()" />
            </div>
            <div id="result" style="display:none">
                <ul style="list-style:none; margin-left:20px;">
                    <%
                        TestDataContext context = new TestDataContext();
                        var query = context.DiaoYanXuanXiang.Where(p=>p.TiMuDaiHao == 1).ToList();
                        
                        int sum = query.Sum(p => p.Numbers).Value;
                        
                        foreach (DiaoYanXuanXiang data in query)
                        {
    
                            int ps = data.Numbers.Value;
    
                            double bfb = ((ps * 1.0) / sum) * 100;
    
                            double width = bfb * 2;
                       
                         %>
                          <li style="600px; height:20px; margin-top:10px;">
                              <div style="150px; height:20px; float:left"><%=data.Options %></div>
                              <div style="200px; height:20px; background-color:gray; float:left">
                                  <div style="<%=width%>px; height:20px; background-color:red"></div>
                              </div>
                              <div style ="20px; height:20px; float:left"><%=ps %></div>
                              <div style="80px; height:20px; float:left">(<%=bfb %>%)</div>
                          </li>
    
                    <%
                        }
                         %>
                </ul>
                <input type="button" value="返回" onclick="fanhui()" />
            </div>
        
        </div>
        </form>
        <script type="text/javascript">
            function fanhui() {
                document.getElementById("vote").style.display = "block";
                document.getElementById("result").style.display = "none";
            }
            function xianshi() {
    
                document.getElementById("vote").style.display = "none";
                document.getElementById("result").style.display = "block";
            }
        </script>
    </body>
    </html>

    aspx.cs代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                TestDataContext context = new TestDataContext();
    
                //查询题目
                var query = context.DiaoYanTiMu.Where(p=>p.Ids==1);
                //显示题目名称
                lblTitle.Text = query.First().Title;
    
                //显示题目选项
                CheckBoxList1.DataSource = context.DiaoYanXuanXiang.Where(p=>p.TiMuDaiHao == query.First().Ids);
                CheckBoxList1.DataTextField = "Options";
                CheckBoxList1.DataValueField = "Ids";
                CheckBoxList1.DataBind();
            }
    
    
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            //取投票的项,将票数更改
            TestDataContext context = new TestDataContext();
            foreach (ListItem ck in CheckBoxList1.Items)
            {
                if (ck.Selected)
                {
                    var query = context.DiaoYanXuanXiang.Where(p=>p.Ids == Convert.ToInt32( ck.Value));
    
                    query.First().Numbers += 1;
    
                    context.SubmitChanges();
                }
            }
    
        }
    }

    二.使用< Script ></ Script >在HTML中嵌入C#代码  

     首先我们来看一看在HTML页面中嵌入JavaScript脚本程序的格式: 

    <SCRIPT LANGUAGE="JavaScript">

    "JavaScript代码内容"
    //JavaScript注释内容

    </SCRIPT>
       为了通知浏览器使用的代码是JavaScript代码,必须在<SCRIPT>标记中加入LANGUAGE="JavaScript"属性。JavaScript代码一般以下面的形式包括在HTML代码中:其中,<script>标记是声明这是一个脚本程序,LANGUAGE是声明该脚本是一个Javascript 脚本。在<script>至</script>中间的任何内容都被视为脚本语句,会被浏览器解释执行。

       我们用记事本编写一个HTML文件JavaScriptEx.html,代码如下:

    <HTML>

    <HEAD>

    <TITLE>响应事件</TITLE>

    </HEAD>

    <BODY>

    <SCRIPT LANGUAGE="JavaScript">

    function aler(){

    window.alert("这是JavaScript事件响应的例子");

    }

     

    </SCRIPT>

    <INPUT TYPE="BUTTON" VALUE="触发按钮" ONCLICK="aler()">

    </BODY>

    </HTML>

       保存后直接点击生成的.html文件即可在IE浏览器中运行,单击“触发按钮”后将弹出对话框,结果如下:

     而对于同ASP.NET,除了<% %>标记,也可以使用<Script></ Script >标记用于在HTML中标记指令代码。对于ASP.NET,<Script>标记有两个特殊的属性:Language和Runat=”Server”。

    1>     Language:该属性用于指定 <Script></ Script >之间代码所使用的编程语言,默认为Visual Basic.NET。另外,这里指定的语言必须与ASPX页首行使用的<%@ Page Language="…"%>一致,否则编译错误,这表明ASP.NET虽然支持多种编程语言,但在同一页面上只能使用一种语言。

    2>     Runat=”Server”属性用于指定代码运行的位置是在服务器端。<Script></ Script >常常用于定义各种变量和函数,完成一定的功能。下面的示例是使用<Script></ Script >标记结合<% %>,根据当前日期输出不同的语句。

    创建一个新的ASP.NET Web应用程序,打开ASPX页面Default.aspx,首先在<title> </title>之间添加标题“使用Script和%在HTML中嵌入C#“,在其中的<div> </div>标签中间输入以下代码:

    <title>使用Script和%在HTML中嵌入C#</title>

    <div>
    
        <!--这是HTML注释方式-->
    
        <%--
    
        <script></script>实现一个函数fun1,该函数根据当前星期,返回不同的日程安排。
    
        这是ASP.NET的注释方式
    
        --%>
    
        <script language="C#" runat="server">
    
        String fun1(string day)
    
        {
    
            string plan = "";/*C,C++,C#注释方式*/
    
            switch (day)
    
            {
    
                case "Monday":
    
                    plan = "向客户提案!";
    
                    break;
    
                case "Thuseday":
    
                    plan = "参加霏霏的生日!";
    
                    break;
    
                case "Wednesday":
    
                    plan = "shopping!";
    
                    break;
    
                case "Thursday":
    
                    plan = "去健身房!";
    
                    break;
    
                case "Friday":
    
                    plan = "向老板汇报工作!";
    
                    break;
    
                default:
    
                    plan = "周末狂欢!";
    
                    break;               
    
            }
    
            return plan;   
    
        }
    
        </script>
    
        <%--
    
        <% %>调用函数fun1,根据当前星期,显示日程安排。
    
        --%>
    
        <%
    
            string date = System.DateTime.Today.Date.ToString();
    
            string weekday = System.DateTime.Today.DayOfWeek.ToString();
    
            string output = fun1(weekday);//C,C++,C#注释方式
    
            Response.Write("现在是"+date+","+weekday+",我计划"+output);       
    
             %>    </div>

    运行结果如下:

    利用以上两种方法可以将C#代码嵌入到HTML中,形成ASPX动态网页文件,但是这样的页面语法混杂,难以管理,针对这个问题,ASP.NET提出了代码分离的思想:即把代码文件(C#代码)和页面显示代码(HTML代码)分离在不同的文档中,各自独立完成Web页面的逻辑功能和显示功能。然后通过<%@ CodeFile=…%>将两者绑定在一起,以达到C#代码嵌入到HTML中的效果。

    Default.aspx的第一行解析:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

    <%@ Page …%>用来设置页面属性,各属性意义如下:

    CodeFile="Default.aspx.cs"这个属性指定了隐藏在这个页面后面的代码文件,所要实现的功能代码就在Default.aspx.cs文件中。

    Language="C#|VB"设置本页所采用的编程语言是C#,默认为C#

    AutoEventWireup="true|false"是否使用ASP.NET约定的事件命名规则,为控件事件命名。

    Inherits="…"定义公应用程序类继承的代码隐藏类

    ResponseEdcodeing="…"设置ASPX编码方式,默认为Unicode。

    Trace="true|false"设置是否在程序中显示代码直行的跟踪信息。

    TraceMode="SortType"设置跟踪信息的排序方式,默认为根据执行时间顺序排序,“SortByTime”。

  • 相关阅读:
    PostgreSQL 10编译安装(CentOS 7)
    CentOS安装单机Zookeeper
    [Oracle报错]TNS-12535: TNS:operation timed out、TNS-00505: Operation timed out
    hibernate一级缓存及对象的状态
    hibernate框架的简单入门
    Json和Ajax
    sql多行多列重复
    折线图饼状图柱形图
    XML文件的读取
    Json数据产生树形结构
  • 原文地址:https://www.cnblogs.com/zyh-club/p/4881063.html
Copyright © 2011-2022 走看看