博客 (103)

在母板页"CS"加入:

public HyperLink MasterPageHyperLink3
{

get
{
return HyperLink3;
}

set
{
HyperLink3
= value;
}
}

在子页"源"加入:

<%@ MasterType VirtualPath="~/xoyozo/xoyozo.master" %>

即可在子页重写它:

Master.MasterPageHyperLink3.NavigateUrl = "ddddddd.html";

但最好放在Page_LoadComplete:

protected void Page_LoadComplete(object sender, EventArgs e)
{
}
xoyozo 17 年前
3,298

我们在用数据控件的时候,一般会在 .aspx 页面生成如单向绑定

Text='<%# Eval("title") %>'

 

或双向绑定

Text='<%# Bind("title") %>'

 

之类的绑定代码,如果我们必需对它进行进一步处理,譬如取得的“产品分类的ID”,我想显示为“产品分类的名称”,或者格式化时间显示

等等。

如果只是连接字符串可以这样处理

Text='<%# Eval("title", "标题为:{0}") %>'

 

如果是通过一个方法去改变绑定值,则可以:

Text='<%# Server.HtmlEncode(Eval("title","{0}")) %>'

 

这里可以套用任何自定义的方法。更可以实现绑定两个数据库字段的实现:

Text='<%# formatUrl(Eval("ID","{0}"),Eval("xArchive","{0}")) %>'
public string formatUrl(string id, string archive)
{

if (archive.Trim() != "")
{

return "/xsdn/archive/" + archive + ".aspx";
}

else
{
return "/xsdn/"+id+".aspx";
}
}

 

 

xoyozo 17 年前
4,734

需要 URLRewriter.dll,它可以在微软官方下载到:取出Bin里面的文件

接下来配置 Web.Config 文件:

在 <configSections> 节点下添加:

<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />

在 <configuration> 节点下添加:

<RewriterConfig>
<Rules>
<RewriterRule>
<!--测试-->
<LookFor>~/(\d{2})/(\d{2})\.aspx</LookFor>
<SendTo>~/Default.aspx?m=$1&amp;d=$2</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>

在 <httpHandlers> 节点下添加:

<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />


完成以上步骤即可以实现URL重写的。但是它只能实现 ~/11/11.aspx~/Default.aspx?m=11&d=11 的重写,如果要实现 ~/11/11.html~/Default.aspx?m=11&d=11 的重写,那么需要通过设置 IIS 来实现 .html 文件的筛选。(适合 IIS5 IIS6,在 IIS7 中不用这么麻烦,具体见本文末尾的链接,scott 的文章)

进入:Internet 信息管理服务 -》网站属性 -》主目录 -》配置 -》映射 -》添加 -》把扩展名 .html 映射到 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll。

然后在 <httpHandlers> 节点中,把 *.html 也交给 URLRewriter 处理就行了。

OK,试试看,访问 ~/11/11.html 确实是 ~/Default.aspx?m=11&d=11 的内容,可是只要 postback 一下,地址栏又显示实际路径了。只要在你的/app_browsers文件夹里添加一个.browser文件,注册使用一个控件适配类即可输出新的action属性。

 

 

 

你可在这里查看一个我创建的样例实现,其展示了该如何实现与URL重写协作的表单控件适配器(Form Control Adapter)

 

参考:http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
译文:http://blog.joycode.com/scottgu/archive/2007/03/01/94004.aspx

xoyozo 17 年前
4,608