• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ASPX向ASCX传值以及文本创建图片(附源码)
    POST TIME:2021-10-18 03:00
    网页ASPX有一个TextBox,另一个ASCX有一个ImageButton,用户点一点这个铵钮,把用户在TextBox输入的文字创建为一个图片,ASCX的ImageButton的ImageUrl重新指向这刚产生的图片。

    为了传值,写一个接口,返回aspx的TextBox函数:
    复制代码 代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI.WebControls;
    /// summary>
    /// Summary description for Itransmitable
    /// /summary>
    namespace Insus.NET
    {
    public interface Itransmitable
    {
    TextBox GetTextBoxControl();
    }
    }

    A.aspx.cs,并实现接口。
    复制代码 代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using Insus.NET;
    public partial class A : System.Web.UI.Page,Itransmitable
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    public TextBox GetTextBoxControl()
    {
    return this.tbHid;
    }
    }

    A.aspx,把用户控件B.ascx接入页面。
    复制代码 代码如下:

    %@ Page Language="C#" AutoEventWireup="true" CodeFile="A.aspx.cs" Inherits="A" %>
    %@ Register src="B.ascx" tagname="B" tagprefix="uc1" %>
    !DOCTYPE html>
    html xmlns="http://www.w3.org/1999/xhtml">
    head runat="server">
    title>/title>
    /head>
    body>
    form id="form1" runat="server">
    div>
    asp:TextBox ID="tbHid" runat="server" />
    uc1:B ID="B1" runat="server" />
    /div>
    /form>
    /body>
    /html>

    B.ascx:
    复制代码 代码如下:

    %@ Control Language="C#" AutoEventWireup="true" CodeFile="B.ascx.cs" Inherits="B" %>
    asp:ImageButton runat="server" ID="imgBmp" OnClick="imgBmp_Click" BorderWidth="1" />

    B.ascx.cs:
    复制代码 代码如下:

    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Drawing.Drawing2D;
    using System.Drawing.Imaging;
    using System.Drawing.Text;
    using System.IO;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Insus.NET;
    public partial class B : System.Web.UI.UserControl
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    this.imgBmp.ImageUrl = GetImagePath("Insus.NET"); //默认值。
    }
    protected void imgBmp_Click(object sender, ImageClickEventArgs e)
    {
    Itransmitable textbox = (Itransmitable)this.Page; //把page转换为接口。
    this.imgBmp.ImageUrl = GetImagePath(textbox.GetTextBoxControl().Text.Trim());
    }
    //创建图片
    private string GetImagePath(string _text)
    {
    Bitmap bitmap = new Bitmap(1, 1);
    Font font = new Font("Arial", 25, FontStyle.Regular, GraphicsUnit.Pixel);
    Graphics graphics = Graphics.FromImage(bitmap);
    int width = (int)graphics.MeasureString(_text, font).Width;
    int height = (int)graphics.MeasureString(_text, font).Height;
    bitmap = new Bitmap(bitmap, new Size(width, height));
    graphics = Graphics.FromImage(bitmap);
    graphics.Clear(Color.White);
    graphics.SmoothingMode = SmoothingMode.AntiAlias;
    graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
    graphics.DrawString(_text, font, new SolidBrush(Color.FromArgb(0, 0, 0)), 0, 0);
    graphics.Flush();
    graphics.Dispose();
    string fileName = Path.GetFileNameWithoutExtension(Path.GetRandomFileName()) + ".jpg";
    bitmap.Save(Server.MapPath("~/ImageLib/") + fileName, ImageFormat.Jpeg);
    return "~/ImageLib/" + fileName;
    }
    }

    运行效果:
     
    Demo code download(.NET 4.5)
    您可能感兴趣的文章:
    • JQuery为用户控件(ASCX)赋值与接口的应用
    • asp.net页面master页面与ascx用户控件传值的问题
    • js获取.aspx页面里面的服务器控件和.ascx中的服务器控件值
    上一篇:JQuery为用户控件(ASCX)赋值与接口的应用
    下一篇:网页(aspx)与用户控件(ascx)交互逻辑处理实现
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信