服务器之家

服务器之家 > 正文

ASPX向ASCX传值以及文本创建图片(附源码)

时间:2019-10-29 15:16     来源/作者:asp.net教程网

网页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; 


运行效果: 
ASPX向ASCX传值以及文本创建图片(附源码)

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
返回顶部