大虾进来看看Render用法

li358871791 2011-03-11 12:09:06
小弟刚才看了下【庖丁解牛:纵向切入Asp.net 3.5控件和组件开发技术系列—(3)从零开始开发服务器控件】
现在有点迷糊了 他里面写了几个方法 把<span>标签换成<div>了 我想问下 这方法怎么调用的?我的default.aspx页面里面这么写的 、那代码页怎么调用 RenderBeginTag(HtmlTextWriter writer) 这个writer参数怎么给?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Details.aspx.cs" Inherits="Details" %>

<!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>Details page</title>
</head>
<body>
<form id="form1" runat="server" method="post" action="Details.aspx">
<div>
<span id="RenderOrderControl1" runat="server">我的内容被Render显示出来了</span>
</div>
</form>
</body>
</html>
>



/// <summary>

/// Render方法执行顺序: 3

/// </summary>

public override void RenderBeginTag(HtmlTextWriter writer)

{

//base.RenderBeginTag(writer);

writer.AddAttribute( HtmlTextWriterAttribute.Id, this.ID);

writer.RenderBeginTag(HtmlTextWriterTag.Div);

}

/// <summary>

/// Render方法执行顺序: 4

/// </summary>

protected override void RenderContents(HtmlTextWriter output)

{

output.Write(Text);

}

/// <summary>

/// Render方法执行顺序: 5

/// </summary>

public override void RenderEndTag(HtmlTextWriter writer)

{

//base.RenderEndTag(writer);

writer.RenderEndTag();

}

...全文
124 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
li358871791 2011-03-21
  • 打赏
  • 举报
回复
没人回到 只能结贴了
li358871791 2011-03-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 gongsun 的回复:]
实例化HtmlTextWriter 这个类,然后给这个类 赋值。。。


这和 protected override void Insert(AV 苍井空)

没有什么区别把 ???
[/Quote]
楼上兄弟试过没 、你可以在代码里面验证下你说的 ,
gongsun 2011-03-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 li358871791 的回复:]
引用 7 楼 wxr0323 的回复:
RebderBeginTag方法表示输出HTML标签头标记
RenderEndTag方法则输出HTML标签尾标
控件在页面呈现的就是HTML标签

这个我知道、 问题是我在default.aspx.cs里面怎么调用这些写好的方法、 那个参数我又应该怎么传
[/Quote]


杯具。。。

void Render(HtmlTextWriter writer)

这个方法不知道传什么参数??? 不都写好了,传一个HtmlTextWriter类型的参数。

这还问???
li358871791 2011-03-15
  • 打赏
  • 举报
回复
自己顶 、、
li358871791 2011-03-15
  • 打赏
  • 举报
回复
自己顶 、、
li358871791 2011-03-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wxr0323 的回复:]
RebderBeginTag方法表示输出HTML标签头标记
RenderEndTag方法则输出HTML标签尾标
控件在页面呈现的就是HTML标签
[/Quote]
这个我知道、 问题是我在default.aspx.cs里面怎么调用这些写好的方法、 那个参数我又应该怎么传
子夜__ 2011-03-11
  • 打赏
  • 举报
回复
RebderBeginTag方法表示输出HTML标签头标记
RenderEndTag方法则输出HTML标签尾标
控件在页面呈现的就是HTML标签
li358871791 2011-03-11
  • 打赏
  • 举报
回复
可以这么说吧、那本书上写的把span 标签变成了div 标签 、但是他写的方法我不明白怎么调用 、能解释下吗 地址:http://blog.csdn.net/ChengKing/archive/2009/01/01/3678388.aspx
子夜__ 2011-03-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 li358871791 的回复:]

sp1234大哥 、正想找你了 、不是不明白//的注释 、是这个方法写好了 我在页面的代码里面怎么调用额? 应该传什么参数进去?
[/Quote]
呵呵。。。

注释都看懂了 就是不懂HtmlTextWriter了呗?

HtmlTextWriter
li358871791 2011-03-11
  • 打赏
  • 举报
回复
大哥方便加下我QQ吗? 358871791 想请教下
li358871791 2011-03-11
  • 打赏
  • 举报
回复
sp1234大哥 、正想找你了 、不是不明白//的注释 、是这个方法写好了 我在页面的代码里面怎么调用额? 应该传什么参数进去?
  • 打赏
  • 举报
回复
看不懂为什么在代码前边写两个斜杠来注释?
li358871791 2011-03-11
  • 打赏
  • 举报
回复
在msdn 找了下 上面的C#列子是这样的、但是还是不明白我调用Render()方法时候要怎么调用,参数应该传上面
// Overrides the Render method to write a <span> element
// that applies styles and attributes.
protected override void Render(HtmlTextWriter writer)
{
// Set attributes and values along with attributes and styles
// attribute defined for a <span> element.
writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "alert('Hello');");
writer.AddAttribute("CustomAttribute", "CustomAttributeValue");
writer.AddStyleAttribute(HtmlTextWriterStyle.Color, "Red");
writer.AddStyleAttribute("Customstyle", "CustomStyleValue");
writer.RenderBeginTag(HtmlTextWriterTag.Span);
// Create a space and indent the markup inside the
// <span> element.
writer.WriteLine();
writer.Indent++;
writer.Write("Hello");
writer.WriteLine();

// Controls the encoding of markup attributes
// for an <img> element. Simple known values
// do not need encoding.
writer.AddAttribute(HtmlTextWriterAttribute.Alt,
"Encoding, \"Required\"",
true);
writer.AddAttribute("myattribute",
"No "encoding " required",
false);
writer.RenderBeginTag(HtmlTextWriterTag.Img);
writer.RenderEndTag();
writer.WriteLine();

// Create a non-standard markup element.
writer.RenderBeginTag("MyTag");
writer.Write("Contents of MyTag");
writer.RenderEndTag();
writer.WriteLine();

// Create a manually rendered <img> element
// that contains an alt attribute.
writer.WriteBeginTag("img");
writer.WriteAttribute("alt", "A custom image.");
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteEndTag("img");
writer.WriteLine();

writer.Indent--;
writer.RenderEndTag();

}


62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧