情况如下:GridView中用模板列绑定了数据库中的字段,该字段是一个Url,当用户点击表格中该字段的列中任意单元格时,弹出一个新的网页,新弹出的网页的Url是不规范的,想要重写Url并且是动态的,以实现以下这种效果,请问各位高人该如何实现呢?
www.test.com/SHTML/Product/Static/Details/7-20081208153120.shtml   真实的Url
www.test.com/Product/“品牌”_“型号”.shtml                       想要重写成的Url
“品牌”绑定列字段名:BrandName
“ 型号” 绑定列字段名:TypeName
“url”绑定列字段;ProductUrl
顺便问个小白问题:刚接触webform,以前都是winfrom,按照以往的思路,在表格的点击事件里先获取到击了哪一行,然后在做事件中重写url或其它处理,可是怎么webfrom里的GridView没有点击事件呢?怎么知道用户点了哪一行弹出的新页面呢?

解决方案 »

  1.   

    用HttpModule
    它可以截获所有对服务器的请求这方面资料网上很多在GridView里用OnCommand事件,而不是平时的Click事件
      

  2.   

    通过urlrewriter重写URL
    <rewriter>
       <rewrite url="~/test_([a-zA-Z]+).html$" to="~/Show.aspx?Code=$1" processing="stop" />
    </rewriter>   <RewriterRule>
            <LookFor>~/list/(\d{0,8})_(\d{0,8})\.html</LookFor>
            <SendTo>~/list/default.aspx?id=$1&amp;page=$2</SendTo>
          </RewriterRule>
    参考
    参考
      

  3.   

    最好使用URL重写控件,例如UrlRewriter.NET 与 UrlRewrittingNet.UrlRewriter
    参考
      

  4.   

    webform的点击事件可以用js做在rowbound事件中
    e.Row.Attributes.Add("onclick","javascript:DoSomething('参数')");
      

  5.   

    你从 shtml重写要shtml用那些重写控件并不一定可行除非你有服务器管理权限,用HttpModule就没有这个问题
      

  6.   

    url重写,参考
    http://topic.csdn.net/u/20090814/09/b21024b6-d5df-40b1-8db8-320e36dd102f.html
      

  7.   

    你的邮箱多少,我给个url重写的例子给你吧,用的是伪静态类。
    [email protected]
      

  8.   

    UrlRewriter 就可以实现
      

  9.   

    URL重写参考