// 按模版比例生成缩略图(以流的方式获取源文件)
//生成缩略图函数
//顺序参数:源图文件流、缩略图存放地址、模版宽、模版高
//注:缩略图大小控制在模版区域内
public static void MakeSmallImg(System.IO.Stream fromFileStream,string fileSaveUrl,System.Double templateWidth,System.Double templateHeight)
{
//从文件取得图片对象,并使用流中嵌入的颜色管理信息
System.Drawing.Image myImage = System.Drawing.Image.fromStream(fromFileStream,true);
//缩略图宽、高
System.Double newWidth = myImage.Width , newHeight = myImage.Height;
//宽大于模版的横图
if(myImage.Width>myImage.Height || myImage.Width==myImage.Height)
{
if(myImage.Width > templateWidth)
{
//宽按模版,高按比例缩放
newWidth = templateWidth;
newHeight = myImage.Height * (newWidth/myImage.Width);
}
}
//高大于模版的竖图
else
{
if(myImage.Height > templateHeight)
{
//高按模版,宽按比例缩放
newHeight = templateHeight;
newWidth = myImage.Width * (newHeight/myImage.Height);
}
}
//取得图片大小
System.Drawing.Size ......
// 按模版比例生成缩略图(以流的方式获取源文件)
//生成缩略图函数
//顺序参数:源图文件流、缩略图存放地址、模版宽、模版高
//注:缩略图大小控制在模版区域内
public static void MakeSmallImg(System.IO.Stream fromFileStream,string fileSaveUrl,System.Double templateWidth,System.Double templateHeight)
{
//从文件取得图片对象,并使用流中嵌入的颜色管理信息
System.Drawing.Image myImage = System.Drawing.Image.fromStream(fromFileStream,true);
//缩略图宽、高
System.Double newWidth = myImage.Width , newHeight = myImage.Height;
//宽大于模版的横图
if(myImage.Width>myImage.Height || myImage.Width==myImage.Height)
{
if(myImage.Width > templateWidth)
{
//宽按模版,高按比例缩放
newWidth = templateWidth;
newHeight = myImage.Height * (newWidth/myImage.Width);
}
}
//高大于模版的竖图
else
{
if(myImage.Height > templateHeight)
{
//高按模版,宽按比例缩放
newHeight = templateHeight;
newWidth = myImage.Width * (newHeight/myImage.Height);
}
}
//取得图片大小
System.Drawing.Size ......
Unicode 编码正逐渐成为多语言支持的最通用解决方案。采用 Unicode 编码的中文网页能在各种平台、各种类的浏览器上都得到很好的兼容。utf-8 是 Unicode 的一种存储/交换实现方式。对于不同数值范围的 Unicode 码,它采用变长的方式来编码:所有 ASCII 字符占用1个字节,大于 0x7f 的则占用2到4字节不等。可以看出,所有 ASCII 文件直接兼容 utf-8。另外,对于网页源代码这样 ASCII 字符占内容很大部分的文件来说,它通常比其他 Unicode 存储/交换格式(如utf-16,utf-32等)更节省空间。因此,utf-8 格式已在网站设计中广泛的使用。
但是,在 asp.net 中文网页中使用 utf-8 编码时,稍不小心就会造成中文乱码,令人头疼。对于这个问题,网上很多地方建议:在必要的地方仍使用 GB2312 编码。这样显然不是一个彻底的解决方案。本文讨论了如何如何在 asp.net 网站中完全使用 utf-8 编码。
在 Visual Studio 2005 中新建一个 asp.net 站点。在 web.config 文件中设置站点使用 utf-8 编码:
<?xml version="1.0"?>
...
<configuration>
<system.web>
<globalization fileEncoding="utf-8" />
</system.web>
<configurat ......
SiteMapPath 控件包含来自站点地图的导航数据。此数据包括有关网站中的页的信息,如 URL、标题、说明和导航层次结构中的位置。若将导航数据存储在一个地方,则可以更方便地在网站的导航菜单中添加和删除项。
下面的代码示例演示包含在 Web.sitemap 文件中的站点地图数据。
<siteMap>
<siteMapNode title="Home" description="Home" url="~/default.aspx" >
<siteMapNode title="Services" description="Services we offer"
url="~/Services.aspx">
<siteMapNode title="Training" description="Training classes"
url="~/Training.aspx" />
<siteMapNode title="Consulting" description="Consulting services"
url="~/Consulting.aspx" />
</siteMapNode>
</siteMapNode>
</siteMap>
说明: 只有在站点地图中列出的页才能在 S ......
默认情况下,ASP.NET 网站导航使用一个名为 Web.sitemap 的 XML 文件,该文件描述网站的层次结构。但是,您可能要使用多个站点地图文件或站点地图提供程序来描述整个网站的导航结构。
例如,您可以具有引用子站点地图的主站点地图。主站点地图可以是:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode title="Home Page" description="">
<siteMapNode title="First Level 1" description="" />
<siteMapNode title="First Level 2" description="">
<siteMapNode title="Second Level 1" description=""/>
<siteMapNode title="Second Level 2" description=""/>
</siteMapNode>
<siteMapNode siteMapFile="child.sitemap" />
</siteMapNode>
</siteMap>
子站点地图可 ......
TreeView Web 服务器控件用于以树形结构显示分层数据,如目录或文件目录。
一、TreeView 控件支持下面的功能:
·自动数据绑定,该功能允许将控件的节点绑定到分层数据(如 XML 文档)。
·通过与 SiteMapDataSource 控件集成提供对站点导航的支持。
·可以显示为可选择文本或超链接的节点文本。
·可通过主题、用户定义的图像和样式自定义外观。
·通过编程访问 TreeView 对象模型,使您可以动态地创建树,填充节点以及设置属性等。
·通过客户端到服务器的回调填充节点(在受支持的浏览器中)。
·能够在每个节点旁边显示复选框。
二、背景
TreeView 控件可以显示几种不同类型的数据:在控件中以声明方式指定的静态数据、绑定到控件的数据、或作为对用户操作的响应通过执行代码添加到 TreeView 控件中的数据。
2.1、显示静态数据
可以通过创建 TreeNode 元素集合,这些元素是 TreeView 控件的子级,在 TreeView 控件中显示静态数据。这些子元素也被称为子节点。
下面的示例演示用于 TreeView 控件的标记,该控件包含三个节点,其 ......
TreeView Web 服务器控件提供了几个可进行编程的事件。这使您能够在发生事件时运行自定义例程。
一、事件
只有用户通过一些操作(如选择、展开或折叠节点)与控件交互时,才会引发 TreeView 控件事件。如果以编程方式调用选择、展开或折叠方法,则不会引发这些事件。例如,如果调用 Expand 方法,将不会引发任何事件。
下表描述了 TreeView 控件支持的事件。
事件
说明
TreeNodeCheckChanged
当 TreeView 控件的复选框发送到服务器的状态更改时发生。每个 TreeNode 对象发生变化时都将发生一次。
SelectedNodeChanged
在 TreeView 控件中选定某个节点时发生。
TreeNodeExpanded
在 TreeView 控件中展开某个节点时发生。
TreeNodeCollapsed
在 TreeView 控件中折叠某个节点时发生。
TreeNodePopulate
在 TreeView 控件中展开某个 PopulateOnDemand 属性设置为 true 的节点时发生。
TreeNodeDataBound
将数据项绑定到 TreeView 控件中的某个节点时发生。
二、示例
2.1、SelectedNodeChanged 事件
下面的代码示例演示如何处理 SelectedNodeChanged 事件以及如何访 ......