点某人空间fly的连接,默认跳转到博客 fly/blog.aspx,点好友跳转到fly/album.aspx
点某人空间some的连接,默认跳转到博客 some/blog.aspx,点好友跳转到some/album.aspx

解决方案 »

  1.   

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div id="div1">
        <a id="a1">fly</a>
        <a id="a2">some</a>
        <script>
        var obj = document.getElementsByTagName('a');
        for(i=0;i<obj.length;i++)
        {
            obj[i].href=obj[i].innerHTML+"/blog.aspx";
        }
        </script>
        </div>
        </form>
    </body>
    </html>自己可以再改改路径!
      

  2.   

    最好的办法就是做个自定义控件啊。这个好简单的嘞。
    希望可以解决你的问题。控件JumpLink:
        [DefaultProperty("LinkText")]
        [ToolboxData("<{0}:JumpLink LinkText  runat=server></{0}:JumpLink>")]
        public class JumpLink : WebControl
        {
            [Bindable(true)]
            [Category("Appearance")]
            [DefaultValue("")]
            [Localizable(true)]
            public string UserName
            {
                get
                {
                    String s = (String)ViewState["UserName"];
                    return ((s == null) ? String.Empty : s);
                }            set
                {
                    ViewState["UserName"] = value;
                }
            }        [Bindable(true)]
            [Category("Appearance")]
            [DefaultValue("")]
            [Localizable(true)]
            public string PageName
            {
                get
                {
                    String s = (String)ViewState["PageName"];
                    return ((s == null) ? String.Empty : s);
                }            set
                {
                    ViewState["PageName"] = value;
                }
            }        [Bindable(true)]
            [Category("Appearance")]
            [DefaultValue("LinkText")]
            [Localizable(true)]
            public string LinkText
            {
                get
                {
                    String s = (String)ViewState["LinkText"];
                    return ((s == null) ? String.Empty : s);
                }            set
                {
                    ViewState["LinkText"] = value;
                }
            }        protected override void OnPreRender(EventArgs e)
            {
                this.Page.ClientScript.RegisterClientScriptBlock(GetType(), "go_jump",
    @"<script language=""javascript"">
    function go_jump(oJumpLink){
        if(!( oJumpLink.pagename && oJumpLink.username )) return false;
        var targetUrl = oJumpLink.username + ""/"" + oJumpLink.pagename;
        window.open( targetUrl );
    }
    </script>
    ");
            }        protected override HtmlTextWriterTag TagKey
            {
                get
                {
                    return HtmlTextWriterTag.A;
                }
            }        protected override void AddAttributesToRender(HtmlTextWriter writer)
            {
                writer.AddAttribute("pagename", PageName);
                writer.AddAttribute("username", UserName);
                writer.AddAttribute("onclick", "javascript:go_jump(this); return false;");
                writer.AddAttribute(HtmlTextWriterAttribute.Href, "#");
            }        protected override void RenderContents(HtmlTextWriter writer)
            {
                writer.Write(LinkText);
            }
        }
    页面:
        <asp:Repeater ID="Repeater1" runat="server">
        <ItemTemplate>
        <div>
        <dft:JumpLink ID="JumpLink1" runat="server" LinkText='<%# DataBinder.Eval(Container,"DataItem.Name") %>' PageName="blog.aspx" 
                UserName='<%# DataBinder.Eval(Container,"DataItem.Name") %>' />
        <dft:JumpLink ID="JumpLink2" runat="server" LinkText="好友" PageName="album.aspx" 
                UserName='<%# DataBinder.Eval(Container,"DataItem.Name") %>' />
         </div>
        </ItemTemplate>
        </asp:Repeater>
    后面:
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                List<User> ds = new List<User>();
                for (int i = 0; i < 10; i++)
                {
                    ds.Add( CreateUser( i, "haoze_" + i ));
                }
                Repeater1.DataSource = ds;
                Repeater1.DataBind();
            }        private User CreateUser(int id, string name)
            {
                User result = new User();
                result.ID = id;
                result.Name = name;
                return result;
            }
        }    public class User
        {
            public int ID { get; set; }
            public string Name { get; set; }
        }
      

  3.   

    但是页面上的代码很少,更重要的是干净,可读性和灵活性大大提高。如果你一个一个在页面上些,另一个页面需要这个功能的时候,你怎么办,要把js拷贝来拷贝去,页面上也太花哨,跟猴子屁股一样就没意思了。让以后的人如何维护呢?你在仔细看看我的服务器控件,根本就有复杂逻辑,思路非常清晰。在看看页面也是这样,不需要到处写一大堆js。