有时候在项目中需要根据实际传过来的参数来生成不同个数的控件来摆放在页面上,这时候可以重写页面 Render方法来达到目的。
下面提供一个示例来实现,代码如下:
//生成要重写的html代码
private string createInputItem()
{
if (Session["Count"] != null)
{
int icount = int.Parse(Session["Count"].ToString());
StringBuilder sbHtml = new StringBuilder();
#region Input Value
for (int i = 1; i <= icount; i++)
{
sbHtml.Append("<tr align=\"left\"> ");
sbHtml.Append("<td style=\"width:150px\" align=\"left\">");
sbHtml.Append("Schacht " + i.ToString() + " SPN F001 ");
sbHtml.Append("</td> ");
sbHtml.Append("<td style=\"width:80px\" align=\"left\">");
sbHtml.Append("<input name=\"txtSPNF001_" + i.ToString() + "\" type=\"text\" style=\"width:80px\" />");
sbHtml.Append("</td> ");
sbHtml.Append("<td style=\"width:30px\" align=\"left\">");
sbHtml.Append("øC");
sbHtml.Append("</td>");
sbHtml.Append("</tr>");
sbHtml.Append("<tr align=\"left\"> ");
sbHtml.Append("<td style=\"width:150px\" align=\"left\">");
sbHtml.Append("Schacht " + i.ToString() + " T001");
sbHtml.Append("</td> ");
sbHtml.Append("<td style=\"width:80px\" align=\"left\">");
sbHtml.Append("<input name=\"txtT001_" + i.ToString() + "\" type=\"text\" style=\"width:80px\" />");
sbHtml.Append("</td> ");
sbHtml.Append("<td style=\"width:30px\" align=\"left\">");
sbHtml.Append("øC");
sbHtml.Append("</td>");
sbHtml.Append("</tr>");
sbHtml.Append("<tr align=\"left\"> ");
sbHtml.Append("<td style=\"width:150px\" align=\"left\">");
sbHtml.Append("Schacht " + i.ToString() + " T007,T009");
sbHtml.Append("</td> ");
sbHtml.Append("<td style=\"width:80px\" align=\"left\">");
sbHtml.Append("<input name=\"txtT007_T009_" + i.ToString() + "\" type=\"text\" style=\"width:80px\" />");
sbHtml.Append("</td> ");
sbHtml.Append("<td style=\"width:30px\" align=\"left\">");
sbHtml.Append("øC");
sbHtml.Append("</td>");
sbHtml.Append("</tr>");
sbHtml.Append("<tr align=\"left\"> ");
sbHtml.Append("<td style=\"width:150px\" align=\"left\">");
sbHtml.Append("Schacht " + i.ToString() + " VM");
sbHtml.Append("</td> ");
sbHtml.Append("<td style=\"width:80px\" align=\"left\">");
sbHtml.Append("<input name=\"txtVM_" + i.ToString() + "\" type=\"text\" style=\"width:80px\" />");
sbHtml.Append("</td> ");
sbHtml.Append("<td style=\"width:30px\" align=\"left\">");
sbHtml.Append("øC");
sbHtml.Append("</td>");
sbHtml.Append("</tr>");
}
#endregion
return sbHtml.ToString();
}
return string.Empty;
}
protected override void Render(HtmlTextWriter writer)
{
StringWriter sw = new StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(sw);
base.Render(htmlWriter);
string strTableTR = createInputItem();
string html = sw.ToString() ;
//将刚才生成的Html代码插入到页面中
int startPoint = html.IndexOf("</table>", StringComparison.CurrentCultureIgnoreCase);
if(startPoint > 0)
{
html = html.Insert(startPoint, strTableTR);
}
writer.Write(html);
}
分享到:
相关推荐
本示例将探讨如何在ASP.NET环境下,特别是在Visual Studio 2005(VS2005)中,配合Access数据库生成HTML页面。 首先,我们需要理解ASP.NET页面生命周期。当用户请求一个ASP.NET页面时,服务器会执行一系列步骤,...
ASP.NET生成静态页面是一种常见的网站优化技术,它能够提高网页加载速度,降低服务器负载,并对搜索引擎友好。在本文中,我们将深入探讨这个主题,包括如何实现静态页面生成、分页处理、常见问题以及代码优化。 ...
在ASP.NET框架中,生成静态页面是一种常见的优化网站性能的技术。静态页面是预先编译好的HTML文件,不依赖服务器端的脚本或数据库查询来呈现内容,因此加载速度更快,对搜索引擎友好,同时减轻了服务器的负担。下面...
在IT行业中,Asp.NET是一种由微软开发的服务器端Web应用程序框架,用于构建动态网站、Web应用程序和Web服务。在Asp.NET中生成HTML是一项基本且重要的任务,它涉及到页面的呈现逻辑和用户交互。本篇文章将深入探讨Asp...
了解 ASP.NET 页面生命周期对开发者来说非常重要,因为它可以帮助我们更好地理解和控制页面的行为。 Page_Init(): Page_Init() 是页面生命周期的第一个过程。这个过程主要是初始化控件,每次页面载入执行这个初始...
在Asp.net中生成HTML是Web开发中的常见任务,它涉及到服务器端代码与客户端HTML的交互。Asp.net提供了一套强大的工具和类库来帮助开发者动态生成HTML,以实现丰富的用户界面和交互功能。以下将详细介绍Asp.net生成...
在ASP.NET页面的生命周期中,可以在`PreRender`事件或`Render`事件中捕获页面内容,然后写入到HTML文件。这种方法适用于单个页面的静态化,代码可能如下: ```csharp protected void Page_PreRender(object sender,...
【标题】:在ASP.NET中实现动态加载Flash到Web页面的控件源代码解析 【内容】: 在ASP.NET框架中,动态加载Flash到Web页面是一项常见的需求,它能够为用户提供更加丰富的交互体验和视觉效果。这个控件的实现基于VS...
在ASP.NET MVC或ASP.NET Core中,可以通过控制器动作方法,在页面被请求时动态生成HTML,然后保存到硬盘上。例如,创建一个控制器方法,获取动态数据,使用Razor视图引擎渲染HTML,最后将HTML写入文件。 2. 使用...
在ASP.NET控件的Render方法中,可以使用这个自定义的HtmlTextWriter。 ```csharp public override void RenderBeginTag(HtmlTextWriter writer) { base.RenderBeginTag(new MyCustomTextWriter(writer)); } ...
ASP.NET中的动态生成静态页面是一种常见的优化技术,它能够提高网站的性能,减轻服务器压力,同时也有助于搜索引擎优化(SEO)。在这个场景中,我们提到的`TextTemplate`类就是一个用于实现这一目标的工具。 `Text...
ASP.NET 页面对象模型是.NET框架中的一个重要组成部分,用于构建动态Web应用程序。该模型涉及一系列复杂的步骤,从HTTP请求的接收,到页面的实例化、执行,再到最终转换为HTML发送给客户端。以下是对这一主题的详细...
在ASP.NET环境中,开发者可以利用AmCharts的API和控件来构建动态、交互式的折线图表,用于数据可视化。 **AmCharts库介绍** AmCharts是一系列基于JavaScript的图表库,支持多种图表类型,如折线图、柱状图、饼图、...
在这个“asp.net mvc换肤demo”中,我们将探讨如何在ASP.NET MVC应用中实现动态皮肤切换功能,从而提升用户体验,允许用户根据个人偏好自定义界面样式。 首先,我们需要理解ASP.NET MVC的基本架构。它基于模型-视图...
2. **动态编译与缓存**:接着,这个动态生成的类会被编译成一个程序集,并缓存在ASP.NET特定的临时目录中。 编译好的页面只要其关联的`.aspx`文件没有发生变更,或者整个应用没有重启,就会一直被使用。一旦`.aspx`...
代码隐藏页模型与单文件页模型不同的是,代码隐藏页模型将事物处理代码都存放在cs文件中,当ASP.NET网页运行的时候,ASP.NET类生成时会先处理cs文件中的代码,再处理.aspx页面中的代码。这种过程被成为代码分离。 ...
ASP.NET页面生命周期是ASP.NET Web Forms开发中的核心概念,它描述了一个ASP.NET页面从请求开始到响应返回给客户端的整个过程。在这个过程中,页面会经历一系列的阶段,每个阶段都有其特定的任务和目的,允许开发者...
ASP.NET控件开发是Web应用程序开发中的核心组成部分,它允许开发者构建交互性强、功能丰富的用户界面。本实例代码集合提供了一种快速学习和实践控件开发的方法,对于想要深入理解ASP.NET控件工作原理和定制自定义...
在ASP.NET中,生成静态页类是一种常见的优化网站性能的技术,尤其对于内容更新不频繁的网站,静态HTML页面可以提供更快的加载速度和更好的搜索引擎优化(SEO)。静态页类主要负责将动态内容转换为静态HTML文件,使得...
在深入理解ASP.NET开发的过程中,掌握页面生命周期是至关重要的一步。页面生命周期指的是从用户请求一个页面到浏览器接收页面响应的整个流程。了解这个流程有助于开发者更好地控制页面的行为,比如何时加载控件状态...