在asp.net(C#)中采用自定义标签和XML、XSL显示数据

标签定义


代码如下:

public class Encoding
{
public string Encode(string cSource)
{
return System.Web.HttpUtility.HtmlEncode(cSource);
}
}
public class EmList : Label
{
public override bool EnableViewState
{
get{ return false;}
}
public string XslFile{get;set;}
public object SerialObject{get;set;}
protected override void Render(HtmlTextWriter writer)
{
if (SerialObject == null)
{
throw new Exception("对象未初始化");
}
System.Xml.Serialization.XmlSerializer oSerial = new System.Xml.Serialization.XmlSerializer(SerialObject.GetType());
System.Text.StringBuilder oSb = new System.Text.StringBuilder();
System.IO.StringWriter oWr = new System.IO.StringWriter(oSb);
string Xml = "";
oSerial.Serialize(oWr, SerialObject);
Xml =oSb.ToString();
string cXslFileName = this.MapPathSecure(XslFile);
if (!System.IO.File.Exists(cXslFileName))
{
throw new Exception("请加自己的处理异常程序");
}
System.Xml.Xsl.XsltArgumentList xslArgs = new System.Xml.Xsl.XsltArgumentList();
Encoding oEn = new Encoding();
xslArgs.AddExtensionObject("urn:Encoding", oEn);
System.Xml.XmlDocument oDoc = new System.Xml.XmlDocument();
try
{
oDoc.LoadXml(Xml);
}
catch
{
throw new Exception("请加自己的处理异常程序");
}
System.Xml.Xsl.XslCompiledTransform oTran = new System.Xml.Xsl.XslCompiledTransform();
string cXsl = "";
try
{
cXsl = System.IO.File.ReadAllText(cXslFileName);
}
catch
{
throw new Exception("请加自己的处理异常程序");
}
System.IO.StringReader oSr=new System.IO.StringReader(cXsl);
System.Xml.XmlReader oRe=System.Xml.XmlReader.Create(oSr);
try
{
oTran.Load(oRe);
}
catch
{
throw new Exception("请加自己的处理异常程序");
}
try
{
oTran.Transform(oDoc, xslArgs, writer);
}
catch
{
throw new Exception("请加自己的处理异常程序");
}
}
}
public class PageBar : System.Web.UI.HtmlControls.HtmlControl
{
public int PageNum{get;set;}
public int PageSize { get; set; }
public int PageCount { get; set; }
public string BaseUrl{get;set;}
protected override void Render(HtmlTextWriter writer)
{
writer.Write(string.Format("<a href={0}?PageNum=1>第一页</a>|<a href={0}?PageNum={1}>上一页</a>|<a href={0}?PageNum={2}>下一页</a>|<a href={0}?PageNum={3}>尾页</a>  (共{4}当前页{5})", BaseUrl, PageNum - 1 > 0 ? PageNum - 1 : 1, PageNum + 1 > PageCount ? PageCount : PageNum + 1, PageCount, PageCount, PageNum));
}
}

页面定义


代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
<%@Register TagPrefix="CS" Namespace="WebApplication1.Control" Assembly=" WebApplication1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<CS:EmList SerialObject="<%#List%>" XslFile="XSL/test.xslt" runat="server" /><br />
<CS:PageBar PageNum="<%#PageNum%>" BaseUrl="<%#Request.Path%>" PageCount="5" runat="server" />
</body>
</html>

其中List和PageNum为页面属性

XSLT:


代码如下:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:Encoding="urn:Encoding">
<xsl:output method="text" />
<xsl:template match="/">
<h2>
<xsl:for-each select="ArrayOfEmployeeEntity/EmployeeEntity">
<![CDATA[<a href="http://www.jb51.net/article/9720.htm]]><xsl:value-of select="Encoding:Encode(EmployeeID)"/><![CDATA[" alt="]]><xsl:value-of select= "Encoding:Encode(Full_Name)"/><![CDATA["><br/>]]><xsl:value-of select= "Encoding:Encode(Email_Address)"/></xsl:for-each>
</h2>
</xsl:template>
</xsl:stylesheet>

(0)

相关推荐

  • C#使用正则表达式过滤html标签

    在项目中遇到这样一个需求,需要将一段html转换为一般文本返回,万能的正则表达式来了. 正则表达式来拯救你,代码如下: public static string Html2Text(string htmlStr) { if (String.IsNullOrEmpty(htmlStr)) { return ""; } string regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; //定

  • asp.net(C#) 动态添加非ASP的标准html控件(如添加Script标签)

    复制代码 代码如下: HtmlGenericControl Include2 = new HtmlGenericControl("script"); Include2.Attributes.Add("type", "text/javascript"); Include2.InnerHtml = "alert('JavaScript in Page Header');"; this.Page.Header.Controls.Ad

  • C#抓取网页数据 解析标题描述图片等信息 去除HTML标签

    一.首先将网页内容整个抓取下来,数据放在byte[]中(网络上传输时形式是byte),进一步转化为String,以便于对其操作,实例如下: 复制代码 代码如下: private static string GetPageData(string url) {     if (url == null || url.Trim() == "")         return null;     WebClient wc = new WebClient();     wc.Credentials

  • C#实现过滤html标签并保留a标签的方法

    本文实例展示C#实现过滤html标签,汉字间空格,制表符,并保留a标签的方法.分享给大家供大家参考之用.具体方法如下: 可以在公共类如Common中定义如下方法: public static string ClearHtmlExceptA(string html) { string acceptable = "a"; string stringPattern = @"</?(?(?=" + acceptable + @")notag|[a-zA-Z0

  • C#中除去所有在HTML元素中标记

    /// 除去所有在HTML元素中标记   public static string StripHTML(string strHtml)   {    string strOutput=strHtml;    Regex regex = new Regex(@"<[^>]+>|</[^>]+>");    strOutput = regex.Replace(strOutput,"");    return strOutput;   

  • 实例分析js和C#中使用正则表达式匹配a标签

    废话不多说,都在代码中,直接上 JS代码: 复制代码 代码如下: <html> <head> <script language="javascript">     var a='<P><A href=\'~abc/ccg/ab.jpg\' width="3">文字</A><A width="4" style="color:#ddd; font-weight:b

  • C#删除UL LI中指定标签里文字的方法

    本文实例讲述了C#删除UL LI中指定标签里文字的方法.分享给大家供大家参考,具体如下: 现在需求越来越变态,但是做代码只能尽量满足,这里先是扣去ul和li中的超链接里的文字 PromptHtml = GetData.GetHTTPInfo(Config.Prompt_Url, "utf-8"); PromptHtml = PromptHtml.Replace("<ul><li>", ""); PromptHtml=Pro

  • 在asp.net(C#)中采用自定义标签和XML、XSL显示数据

    标签定义 复制代码 代码如下: public class Encoding { public string Encode(string cSource) { return System.Web.HttpUtility.HtmlEncode(cSource); } } public class EmList : Label { public override bool EnableViewState { get{ return false;} } public string XslFile{get

  • Asp.net Core中实现自定义身份认证的示例代码

    Asp.Net Core中虽然集成了许多常用的身份认证,但很多时候,我们还是需要实现自己的身份认证接口,本文这里就简单的介绍下如何实现自定义身份认证接口. 首先写一个简单的接口. [Authorize] [HttpGet] public object Foo() { return DateTime.Now.ToString(); } 由于有Authorize标记,访问函数体前会判断用户是否通过认证,由于这里没有通过认证,会的得到一个500错误. 自定义认证处理类: 实现一个IAuthentica

  • AndroidStudio修改Code Style来格式化自定义标签的xml文件方式

    最初的源文件样式如下: 用默认的配置进行格式化之后如下: 使用如下配置后,格式化之后的代码如下: 最终修改成下面这样比较合适: 以上这篇AndroidStudio修改Code Style来格式化自定义标签的xml文件方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 在django中使用自定义标签实现分页功能

    效果演示: github地址:https://github.com/mncu/django_projects/tree/master/django_projects/pagination_test 本例中总页数为30页,显示页数为12页,当前页的前排页数为4,后排页数为5 将分页分为三种情况: 1   当前页为第1页到第7页的时候,无省略页,且12个位置的内容是不变 2  当前页为第8页到第25页时,位置1与位置2内容不变,当前页一直处于位置7, 3  当前页为第25页到第30页时,位置1与位置

  • ASP.NET MVC中异常处理&自定义错误页详析

    一.应用场景 对于B/S应用程序,在部署到正式环境运行的过程中,很有可能出现一些在前期测试过程中没有发现的一些异常或者错误,或者说只有在特定条件满足时才会发生的一些异常,对于使用ASP.NET MVC开发的应用程序站点,在部署到IIS上后,如果开发人员未对程序进行错误处理,那么一旦程序出现未处理的错误或异常,用户将看到一个让人感到及其困惑的错误堆栈跟踪页面,使得站点的用户体验下降,从程序的角度上来说,不做自定义错误处理也不利于程序出问题时的根源查找,因为很多时候有些错误只在特定条件下满足时才重现

  • Django零基础入门之自定义标签及模板中的使用

    目录 自定义标签: 第一部分 (1)视图函数编写: (2)编写模板文件: (3)自定义标签实现: (4)效果展示: 第二部分 (1)视图函数编写: (2)编写模板文件: (3)自定义标签实现: 第三部分 紧接上文--<Django零基础入门之自定义过滤器及模板中的使用>,本文来讲一讲自定义标签!!! 自定义标签: 源码学习: template.Library().simple_tags(): def simple_tag(self, func=None, takes_context=None,

  • JSP 自定义标签实现数据字典的实例

    JSP 自定义标签实现数据字典的实例 1.关于JSP标签的好处就不再罗嗦 数据字典就是使用的下拉框,只要定义使用那个字典就会将这个字典可用的内容显示出来 显示字典时只要定义那个字典和属性值就可以显示出字典的显示值 2.首先在web.xml中定义自定义标签加载的引用,两个属性分别是引用的URI和加载路径 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xm

  • JSP 自定义标签第1/3页

    一.基本概念: 1.标签(Tag): 标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本.由于标签是XML元素,所以它的名称和属性都是大小写敏感的 2.标签库(Tag library): 由一系列功能相似.逻辑上互相联系的标签构成的集合称为标签库. 3.标签库描述文件(Tag Library Descriptor): 标签库描述文件是一个XML文件,这个文件提供了标签库中类和JSP中对标签引用的映射关系.它是一个配置文件,和web

  • JSP 自定义标签之一 简单实例

    在JSP中使用自定义标签可以达到这样的目的,事实上,我们所熟知的各类框架基本上都是通过自定义标签的形式来实现的. 通过使用自定义标签,我们可以将实现复杂的逻辑在页面用简单的标签来加以展示.下面我们来实现一个非常简单的自定义标签,期望通过这个简单的实例引领各位进入自定义标签的领域.我们准备定义的这个自定义标签所实现的功能是在JSP页面中显示出版权信息,并且在以后的博文中,我们还会对它进行升级改造. 首先,打开编辑器,创建以下Java代码: 复制代码 代码如下: package com.yanzhi

  • 基于JSP 自定义标签使用实例介绍

    添加JSP自定义标签: 先添加一个tld文件到WEB-INF文件夹中<?xml version="1.0" encoding="UTF-8" ?><taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://

随机推荐