webform调取前段和前段调取webform的案例方法

本文总结了WebForm如何调用前端JavaScript以及前端如何响应WebForm的方法。通过在WebForm中触发JS事件,利用动态生成的ID(如:contentPlaceHolder1_Button3)在JS中进行操作,实现页面间的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js调用后台,后台调用前台等方法总结 

1. javaScript函数中执行C#代码中的函数: 

方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入Button1_Click中; 


复制代码 代码如下:


protected void Button1_Click(object sender, EventArgs e) 
{ 
this.TextBox1.Text = "voodooer"; 
} 


2、在前台可以这样调用: 

复制代码 代码如下:


<input type="button" value="访问C#的方法" onclick='document.getElementById("Button1").click();' /> 


方法二:1、函数声明为public 或者protected 

复制代码 代码如下:


public string ss() 
{ 
return("voodooer"); 
} 


2、 前台调用方法 

复制代码 代码如下:


<script language=javascript> 
var a = " <%=ss()%>"; 
alert(a); 
</script> 


方法三:1、 <script language="javascript"> 

复制代码 代码如下:


<!-- 
function __doPostBack(eventTarget, eventArgument) 
{ 
var theForm = document.Form1; //指runat=server的form 
theForm.__EVENTTARGET.value = eventTarget; 
theFrom.__EVENTARGUMENT.value = eventArgument; 
theForm.submit(); 
} 
--> 
</script> 
<input type="button" value="按钮" > 


方法四: 

复制代码 代码如下:


<script language="javascript"> 
function SubmitKeyClick() 
{ 
if (event.keyCode == 13) 
{ 
event.cancelBubble = true; 
event.returnValue = false; 
document.all.FunName.value="你要调用的函数名"; 
document.form[0].submit(); 
} 
} 
</script> 
<INPUT type="text"> 
<input type="hidden" > 〈!--用来存储你要调用的函数 --〉 


在.CS里有: 

复制代码 代码如下:


public Page_OnLoad() 
{ 
if (!Page.IsPost()) 
{ 
string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:""; 
//根据传回来的值决定调用哪个函数 
switch(strFunName) 
{ 
case "enter()": 
enter() ; //调用该函数 
break; 
case "其他": 
//调用其他函数 
break; 
default: 
//调用默认函数 
break; 
} 
} 
} 
public void enter() 
{ 
//……比如计算某值 
} 


2.如何在JavaScript访问C#变量? 

答案如下: 

方法一:1、通过页面上隐藏域访问 <input type="hidden" runat="server"> 

方法二:1、如后台定义了PUBLIC STRING N;前台js中引用该变量的格式为' <%=n%>'或"+ <%=n%>+" 

方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本 

" <script language='javascript'>var temp=" + tmp + " </script>" 

tmp是后台变量,然后js中可以直接访问temp获得值。 

3.如何在C#中访问JavaScript的已有变量? 

答案如下: 

方法一:1、前台使用静态文本控件隐藏域,将js变量值写入其中; 

2、后台用request["id"]来获取值; 

方法二:可以用cookie或session 

4.如何在C#中访问JavaScript函数? 

答案如下: 

c#代码中执行javaScript函数: 

方法一:1、Page.RegisterStartupScript("ggg"," <script>SetVisible(1); </script>"); 

方法二:使用Literal类,然后 

复制代码 代码如下:


private void Button2_Click(object sender, System.EventArgs e) 
{ 
string str; 
str=" <script language='javascript'>"; 
str+="selectRange()"; 
str+=" </script>"; 
//Literal1.Visible=true; 
Literal1.Text=str; 
} 

 总结:1. 首先在webform 中调用js ,然后, js 中调取生成好的按钮的事件,然后在调取js页面生成o 以后 都会 生成 类似 的 id 编号名称ntentPlaceHolder1_Button3 可以在js 中进行这样的添加 webform 页面

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.SessionState;
using PanoramaSystem.DAL;
using PanoramaSystem.Models;
using itthome.Model;
using itthome.DAL;
using System.IO;
using itthome.Common;
using System.Net;
using System.Collections.Specialized;
using System.Text;


namespace PanoramaSystem.Views
{
    public partial class CreateOrUpdateRoom : System.Web.UI.Page
    {
        private int PanId;

        protected void Page_Load(object sender, EventArgs e)
        {
            this.Button3.Visible = false;
            PanId = Convert.ToInt32(Request["id"].ToString());
            if (!IsPostBack)
            {
                getSession();

                if (Request["id"] == null)
                {
                    Response.Redirect("PanoramaManager.aspx");
                }
                else
                {
                    try
                    {
                        if (Request["roomid"] != null)
                        {
                            Models.Room room = new Models.Room();
                            int id = Convert.ToInt32(Request["roomid"].ToString());
                            Room rooms = RoomServices.SelectById(id);
                            TextBox3.Text = rooms.RoomName;
                            Image2.ImageUrl = "~/upload/Url/" + rooms.UrlPic;
                            picDiv.Style.Value = "display:s";
                            Label1.Text = "编辑房间";
                        }
                        else
                        {
                            Label1.Text = "添加房间";
                        }
                    }
                    catch (Exception ex)
                    {
                        Class4Log.LogError("获取要编辑的房间出错!!!", ex);
                    }
                }
            }
        }
        public string Of_GetStr(string url)
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            string ret = string.Empty;
            Stream s;
            string StrDate = "";
            string strValue = "";
            if (response.StatusCode == HttpStatusCode.OK)
            {
                s = response.GetResponseStream();
                StreamReader Reader = new StreamReader(s, Encoding.UTF8);
                while ((StrDate = Reader.ReadLine()) != null)
                {
                    strValue += StrDate;
                }
            }
            return strValue;

        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Literal2.Text = "<script language='javascript'>al();</script>";
                           
            this.btnBC.Disabled = false;
            this.Button3.Visible = false;
            if (Image2.ImageUrl == null || Image2.ImageUrl == "")
            {
                Label3.Text = "全景图不能为空";
                this.Button3.Visible = true;//解除控制
            }
            else
            {
                //防止重复提交
                //逻辑,如果ChecksCreateVR是 true 就表示在生成,不在进行图片上传操作
              
                Models.Room room = new Models.Room();
                room.RoomName = TextBox3.Text.ToString();
                string paths = System.IO.Path.GetFileName(Image2.ImageUrl);
                room.UrlPic = paths;//户型图
                room.PanoramaId = PanId;
                if (File.Exists(string.Format(@"{0}upload\Url\{1}", System.AppDomain.CurrentDomain.BaseDirectory, paths)))
                {

                    if (Session["ChecksCreateVR"] == "true")
                    {
                    }
                    else { 
                    
                    string xiaotupath = MakeThumbnail(string.Format(@"{0}upload\Url\{1}", System.AppDomain.CurrentDomain.BaseDirectory, paths), string.Format(@"{0}upload\XiaoTu\{1}{2}", System.AppDomain.CurrentDomain.BaseDirectory, Guid.NewGuid(), ".jpg"), 45, 45, "Cut");
                    room.XiaoTu = System.IO.Path.GetFileName(xiaotupath); //返回 e.jpg
                    /**/

                    this.Button3.Visible = true;//解除控制
                    }
                    /**/  
                }
                else
                {
                    if (Session["ChecksCreateVR"] == "true")
                    {
                    }
                    else { 
                    
                    room.XiaoTu = "";//返回 e.jpg
                    this.Button3.Visible = true;//解除控制
                    }
                }
                if (Request["roomid"] == null)
                {
                    try
                    {
                        if (RoomServices.Select().Where(m => m.PanoramaId == PanId).Any(m => m.RoomName == room.RoomName))
                        {
                            if (Session["ChecksCreateVR"] == "false")
                            {
                                
                                Response.Redirect("RoomManager.aspx?id=" + PanId, false);
                            }
                            else
                            {

                                Response.Write("<script>alert('房间名不可重复');</script>");
                                this.Button3.Visible = true;//解除控制
                            }

                        }
                        else
                        {
                            //这里是添加
                            Session["ChecksCreateVR"] = "true";

                 
                            RoomServices.Create(room);
                            #region 生成全景


                            string CreatePath = System.Configuration.ConfigurationSettings.AppSettings["CreatePath"].ToString();
                            string[] ImgNameId = ((room.UrlPic).ToString()).Split('.');


                            string ImgUrl = ImgNameId[0].ToString();

                           


                            string url = string.Format("{0}?Hid={1}&IId={2}", CreatePath, room.PanoramaId, ImgUrl).ToString();
                            Class4Log.LogInfo("添加的房间成功");
                            
                            Response.Redirect("RoomManager.aspx?id=" + PanId, false);
                            Of_GetStr(url);
                           if (Session["ChecksCreateVR"] == "true") {
                               Session["ChecksCreateVR"] = "false";
                                
                           }
                          
                            //等所有情况完事了,进行解除
                           this.Button3.Visible = true;//解除控制 
                            //调取方法
                        //   Literal1.Text = "<script language='javascript'>GetCreate_ajax('"+CreatePath+"'," + room.PanoramaId + "," + ImgUrl + ",'"+url+"');</script>";
                            #endregion
                         

                        }
                    }
                    catch (Exception ex)
                    {
                        Class4Log.LogError("添加的房间出错!!!", ex);
                        this.Button3.Visible = true;//解除控制
                       
                    }
                }
                else
                {
                    try
                    {
                        this.Button3.Visible = true;//解除控制
                        int id = Convert.ToInt32(Request["roomid"].ToString());
                        Room rooms = RoomServices.SelectById(id);
                        if (RoomServices.Select().Where(m => m.PanoramaId == PanId).Any(m => m.RoomName == room.RoomName))
                        {
                            if (Session["ChecksCreateVR"] == "false")
                            {
                               
                                Response.Redirect("RoomManager.aspx?id=" + PanId, false);
                            }
                            else { 
                             Response.Write("<script>alert('请不要太快点击');</script>");
                            }
                           

                            
                        }
                        else
                        {
                            room.RoomId = rooms.RoomId;
                            room.UpdateTime = rooms.UpdateTime;
                            RoomServices.Update(room);
                            SpriteServices.Update(room.RoomName, id);
                            Class4Log.LogInfo("修改的房间成功,房间ID是" + id);
                            Response.Redirect("RoomManager.aspx?id=" + PanId,false);
                        }
                    }
                    catch (Exception ex)
                    {
                        Class4Log.LogError("修改房间出错!!!", ex);
                        this.Button3.Visible = true;//解除控制
                    }
                }
            }
            Literal1.Text = "<script language='javascript'>GetCreate_ajax('" + 1 + "'," + 1 + "," + 1 + ",'" + 1 + "');</script>";
                          
        }

        protected void Button2_Click1(object sender, EventArgs e)
        { 
            //上传的时候进行禁用,防止重复提交
            FileUpload2.Enabled = false;
            
            string name = FileUpload2.FileName;//获取上载文件的名称
            if (name != "")
            {
                try
                {
                    string ext = System.IO.Path.GetExtension(name);// 获取文件的扩展名,比如 .gif
                    DateTime dt = DateTime.Now;
                    string newname = dt.ToString("yyyyMMddHHmmssffff") + ext;//利用时间生成新文件名后再加扩展名生成完整名字
                    string paths = "~/upload/Url/" + newname;//保存的路径,注意一定要有load目录,不然会错
                    FileUpload2.SaveAs(System.Web.HttpContext.Current.Server.MapPath(paths));
                    //string path = Server.MapPath("~/upload/Url/");
                    //FileUpload2.PostedFile.SaveAs(path + name);//将文件保存在相应的路径下 
                    Image2.ImageUrl = paths;
                    Image2.Width = 400;
                    picDiv.Style.Value = "display:block";
                    //解除选择禁用
                    FileUpload2.Enabled = true;
                    this.Button3.Visible = true;
                    Literal1.Text = "<script language='javascript'>thisdw();</script>";

                }
                catch (Exception ex)
                {

                    Response.Write("<script>alert('上传文件出错!请重新上传');</script>");
                    Class4Log.LogError("上传文件出错!!!", ex);
                    FileUpload2.Enabled = true;
                }
            }
            else {
                //如果文件名为空,就解除限制
                FileUpload2.Enabled = true;
            }
        }


        /// <summary>
        /// 显示消息提示对话框,并进行页面跳转
        /// </summary>
        /// <param name="msg">提示信息</param>
        /// <param name="url">跳转的目标URL</param>
        public void ShowAndRedirect(string msg, string url)
        {
            System.Text.StringBuilder Builder = new System.Text.StringBuilder();
            Builder.Append("<script language='javascript' defer>");
            Builder.AppendFormat("alert('{0}');", msg);
            Builder.AppendFormat("location.href='{0}'", url);
            Builder.Append("</script>");
            this.RegisterStartupScript("message", Builder.ToString());
        }




        /// <summary>
        /// 获取Session
        /// </summary>
        public void getSession()
        {
            try
            {
                #region 获取登录用户信息

                User user = Session["userInfo"] as User;
                if (user == null)
                {
                    string msg = "请重新登录",
                           url = "html/Login.html";
                    ShowAndRedirect(msg, url);
                }
                else
                {
                    Login_RoleID3.Text = user.RoleID;
                    Login_RoleName3.Text = user.RoleName;
                    Login_UserID3.Text = user.UserID;
                    Login_UserName3.Text = user.UserName;
                    Login_Company3.Text = user.Company;
                }

                #endregion
            }
            catch (Exception ex)
            {
                    Class4Log.LogError("获取Session出错!!!", ex);
            }

            Label username = Master.FindControl("UserName") as Label;
            username.Text = Login_UserName3.Text;
        }

        protected void PanData_SelectedIndexChanged(object sender, EventArgs e)
        {

        }


        /**/
        /// <summary>
        /// 生成缩略图
        /// </summary>
        /// <param name="originalImagePath">源图路径(物理路径)</param>
        /// <param name="thumbnailPath">缩略图路径(物理路径)</param>
        /// <param name="width">缩略图宽度</param>
        /// <param name="height">缩略图高度</param>
        /// <param name="mode">生成缩略图的方式</param>    
        public static string MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
        {
            System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);
            int towidth = width;
            int toheight = height;
            int x = 0;
            int y = 0;
            int ow = originalImage.Width;
            int oh = originalImage.Height;
            switch (mode)
            {
                case "HW"://指定高宽缩放(可能变形)                
                    break;
                case "W"://指定宽,高按比例                    
                    toheight = originalImage.Height * width / originalImage.Width;
                    break;
                case "H"://指定高,宽按比例
                    towidth = originalImage.Width * height / originalImage.Height;
                    break;
                case "Cut"://指定高宽裁减(不变形)                
                    if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
                    {
                        oh = originalImage.Height;
                        ow = originalImage.Height * towidth / toheight;
                        y = 0;
                        x = (originalImage.Width - ow) / 2;
                    }
                    else
                    {
                        ow = originalImage.Width;
                        oh = originalImage.Width * height / towidth;
                        x = 0;
                        y = (originalImage.Height - oh) / 2;
                    }
                    break;
                default:
                    break;
            }
            //新建一个bmp图片
            System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);
            //新建一个画板
            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
            //设置高质量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
            //设置高质量,低速度呈现平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            //清空画布并以透明背景色填充
            g.Clear(System.Drawing.Color.Transparent);
            //在指定位置并且按指定大小绘制原图片的指定部分
            g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),
    new System.Drawing.Rectangle(x, y, ow, oh),
    System.Drawing.GraphicsUnit.Pixel);
            try
            {
                //以jpg格式保存缩略图
                bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
            }
            catch (System.Exception e)
            {
                throw e;
            }
            finally
            {
                originalImage.Dispose();
                bitmap.Dispose();
                g.Dispose();
            }
            return thumbnailPath;
        }



    }
}

前台页面

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/BackgroundSys.Master" AutoEventWireup="true" CodeBehind="CreateOrUpdateRoom.aspx.cs" Inherits="PanoramaSystem.Views.CreateOrUpdateRoom" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <title>添加户型</title>
    <style type="text/css">
        .middle .middle_right .select_2 div {
            float: none;
        }

        .addstyle {
            background-color: rgb(236, 236, 236);
            width: 500px;
            height: auto;
            text-align: center;
            margin: auto;
            border: 1px #F6F6F6 solid;
            border-radius: 10px;
            padding: 20px;
            color: #555555;
        }

        .pointer {
            cursor: pointer;
        }

        .queren {
            cursor: pointer;
            margin-top: 20px;
        }
    </style>
    <script src="../js/JQuery/jquery-1.7.min.js"></script>
    <script type="text/javascript">
        var data = {
            Url_Data: "",
            Hid_Data: "",
            IId_Data: ""
        };
        function al() {
            alert(1);
        }
        function GetCreate_ajax(Url, Hid, IId,cds) {
            alert(Url);
            alert(Hid);
            alert(IId);

            data.Url_Data = Url;
            data.Hid_Data = Hid;
            data.IId_Data = IId;
            console.log(cds);
            console.log(Url + "?Hid=" + Hid + "&IId="+IId);
            $.ajax({
                url: data.Url_Data,
                type: "POST",
                dataType: "json",
                data: {
                    "Hid": data.Hid_Data,
                    "IId": data.IId_Data
                },
                success: function (data) {
                    if (data.OK) {
                        //返回接口提示,正确,
                        console.log(data.OK);

                    } else if (data.Err) {
                        //返回接口错误
                        console.log(data.Err);
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    console.log("访问接口出错");
                }
            });
        }
        function thisdw() {
            alert("ks");
            document.getElementById("ContentPlaceHolder1_Button3").click();
        }

    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
      
    <script language="javascript" type="text/javascript">
        function showImg(value) {
            var obj = window.document.getElementById("<%=FileUpload2.ClientID%>");
            var image = window.document.getElementById("<%=Image2.ClientID%>");
            image.ImageUrl = value
        }
    </script>
    <section class="middle_right">
        <form id="form3" runat="server">
            <article class="te"><span style="font-size: 12px; color: #646060">我的位置>全景管理>添加房间</span></article>
            <section class="select">
                <h3>
                    <asp:Label ID="Label1" runat="server" Text="添加房间"></asp:Label></h3>

                <a href="javascript:void(history.go(-1))" class="right">返回</a>
            </section>
            <section class="select_2">
                <div class="addstyle">
                    <p>
                        <span style="font-size: 14px; color: #000">房 间 名</span>
                        <asp:TextBox ID="TextBox3" runat="server" Width="211px"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="TextBox3" ErrorMessage="房间名不得为空" ForeColor="#CC0000"></asp:RequiredFieldValidator>
                    </p>
                    <p>
                         
                    </p>
                    <p>
                        <span style="font-size: 14px; color: #000">房 间 图</span>
                        <asp:FileUpload ID="FileUpload2" runat="server" Width="234px" onchange="javascript:showImg(this.value)" />
                        <asp:Button ID="Button4" runat="server" Text="上传" BackColor="#6699FF" BorderStyle="None" ForeColor="White" Height="21px" OnClick="Button2_Click1" Width="76px" CssClass="pointer" CausesValidation="false" />
                        <asp:Label ID="Label3" runat="server" ForeColor="#CC0000"></asp:Label>
                    </p>
                    <p>
                         
                    </p>
                    <p>
                        <asp:Label ID="Label23" runat="server" ForeColor="#CC0000" Text="上传提醒:图片支持jpg格式"></asp:Label>
                    </p>
                    <div id="picDiv" runat="server" style="display: none">
                        <p>
                            <asp:Image ID="Image2" runat="server" Width="400" />
                        </p>
                    </div>
                    <p id="btnBC" runat="server">
                        <asp:Label ID="Label13" runat="server"></asp:Label>

                        <asp:Button ID="Button3" runat="server" OnClick="Button1_Click" Text="确认保存" BorderStyle="None" BackColor="#4f99c6" ForeColor="White" Height="40px" Width="138px" CssClass="queren" />
                    </p>
                    <p>
                         
                    </p>
                    <asp:Label ID="Login_RoleID3" runat="server" Text="Login_RoleID" Visible="False"></asp:Label>
                    <asp:Label ID="Login_RoleName3" runat="server" Text="Login_RoleName" Visible="False"></asp:Label>
                    <asp:Label ID="Login_UserID3" runat="server" Text="Login_UserID" Visible="False"></asp:Label>
                    <asp:Label ID="Login_UserName3" runat="server" Text="Login_UserName" Visible="False"></asp:Label>
                    <asp:Label ID="Login_Company3" runat="server" Text="Login_Company" Visible="False"></asp:Label>
                              <asp:Literal ID="Literal2" runat="server"></asp:Literal>
                    <asp:Literal ID="Literal1" runat="server"></asp:Literal>
                    <div onclick="thisdw();" >dianwo</div>
                    <asp:Literal ID="Literal3" runat="server"></asp:Literal>
                </div>
            </section>
        </form>
    </section>
</asp:Content>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值