当前位置:编程学习 > C#/ASP.NET >>

HyperLink传值问题

我想在超链接里面传个ID

<tr><td><asp:HyperLink runat="server" Style="position: relative" ID="HyperLink2" NavigateUrl='~/searchPublishNew.aspx?id="+(Int)Session["id"]+"'><%=(String)Session["title"] %></asp:HyperLink></td></tr>

这个aspx页面的控件,我想在NavigateUrl里面把id的值加上去,但是运行的时候,id的值却是Session["id"]。
求指点。。。 --------------------编程问答--------------------

NavigateUrl='~/searchPublishNew.aspx?id="+<%=Session["id"]%>+"'
--------------------编程问答-------------------- '~/searchPublishNew.aspx?id="+(Int)Session['id']+"'
引号错误,这样试试 --------------------编程问答-------------------- 我看错了  不好意思
--------------------编程问答-------------------- 也可以后台赋值  超链接嘛      没必要什么都写在前台 --------------------编程问答--------------------
引用 1 楼 leejelen 的回复:
HTML code

NavigateUrl='~/searchPublishNew.aspx?id="+<%=Session["id"]%>+"'


这个不行,我试过了 --------------------编程问答--------------------
引用 3 楼 skydemo 的回复:
我看错了 不好意思


? --------------------编程问答-------------------- NavigateUrl="<%= '~/searchPublishNew.aspx?id=' + Session["id"].ToString() %>"
--------------------编程问答-------------------- 单步调试下哦 --------------------编程问答-------------------- NavigateUrl='~/searchPublishNew.aspx?id="+<%=getID()%>+"'

后台  写 public getID()  函数

直接 return Session["id"].tostring()


方法很多的
--------------------编程问答-------------------- NavigateUrl="<%= '~/searchPublishNew.aspx?id=' + Convert.ToInt32(Session["id"]) %>"
--------------------编程问答-------------------- NavigateUrl='~/searchPublishNew.aspx?id='+(Int)Session["id"]
试试 --------------------编程问答--------------------
引用 7 楼 hrabeyond 的回复:
NavigateUrl="<%= '~/searchPublishNew.aspx?id=' + Session["id"].ToString() %>"

报错:
服务器标记不能包含 <% ... %> 
--------------------编程问答--------------------
引用 10 楼 gl0919 的回复:
NavigateUrl="<%= '~/searchPublishNew.aspx?id=' + Convert.ToInt32(Session["id"]) %>"

报错:
服务器标记不能包含 <% ... %>  --------------------编程问答-------------------- 那你就后台呗。。为啥非要在前台。。。不会 --------------------编程问答-------------------- 不知道你的HyperLink是不是要重复生成多次,如果是的话,用绑定语法Eval不就可以了嘛,如果只是单个控件的话,那就在后台赋值啊,或者<%=''+session[''] %>看下 --------------------编程问答--------------------
引用 9 楼 wyq29 的回复:
NavigateUrl='~/searchPublishNew.aspx?id="+<%=getID()%>+"'

后台 写 public getID() 函数

直接 return Session["id"].tostring()


方法很多的

运行结果:跳转的路径为:
searchPublishNew.aspx?id="+<%=getId() %>+"
还是不行啊 --------------------编程问答--------------------
引用 15 楼 myhope88 的回复:
不知道你的HyperLink是不是要重复生成多次,如果是的话,用绑定语法Eval不就可以了嘛,如果只是单个控件的话,那就在后台赋值啊,或者<%=''+session[''] %>看下

是,不知道怎么绑定。。。


 <%
                          string path = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E://UMMSDB.mdb";
        OleDbConnection conn = new OleDbConnection(path);
        string sql = "select top 5 art_id,art_title from article";
        conn.Open();
        OleDbCommand cmd = new OleDbCommand(sql,conn);
        OleDbDataReader reader = cmd.ExecuteReader();
        while(reader.Read())
        {
            Session["title"] = reader.GetString(1);
            Session["id"] = reader.GetInt32(0);
               %>                                                                     
                      <tr><td><asp:HyperLink runat="server" Style="position: relative" ID="HyperLink2" ><%=(String)Session["title"] %></asp:HyperLink></td></tr>
                     
                      <%
        }
        conn.Close();                
                          %>

这是部分代码 --------------------编程问答-------------------- 用a标签试试。 --------------------编程问答--------------------  <asp:HyperLink ID="lnkCreate" runat="server" NavigateUrl="javascript:popupWin('create');">创建</asp:HyperLink>
-------------------------------------
<script type="text/javascript">
    function popupWin(action,e)
    {
        if(action=='create')
        {
                var retVal = window.showModalDialog('CreateClassife.aspx?pid='+pid,null,'dialogWidth:650px;dialogHeight:240px;status:no');              
           }
    }
代码贴上来了,自己看下.

--------------------编程问答-------------------- NavigateUrl="~/New.aspx?id=' + <%# Eval("id") %>+'>"
--------------------编程问答--------------------
引用 18 楼 zwzwzwzwzw0000012345 的回复:
用a标签试试。

用a标签搞定了。。。 --------------------编程问答-------------------- NavigateUrl='~/New.aspx?id=' + <%= session["id"].ToString() %>+'>'

这样就行了。

<a href='~/New.aspx?id='+<%=session["id"].ToString()%>...</a>

也可以这样。 --------------------编程问答-------------------- int id=Convert.ToInt32(Session["id"])

NavigateUrl='~/searchPublishNew.aspx?id="+<%=id>+"'
--------------------编程问答-------------------- mark
--------------------编程问答--------------------
引用 22 楼 yqyqyoyo 的回复:
NavigateUrl='~/New.aspx?id=' + <%= session["id"].ToString() %>+'>'

这样就行了。

<a href='~/New.aspx?id='+<%=session["id"].ToString()%>...</a>

也可以这样。


'>'
这是什么? --------------------编程问答--------------------
引用 23 楼 yumen3501 的回复:
int id=Convert.ToInt32(Session["id"])

NavigateUrl='~/searchPublishNew.aspx?id="+<%=id>+"'

不行 --------------------编程问答--------------------
引用 26 楼 woainizzzch 的回复:
引用 23 楼 yumen3501 的回复:
int id=Convert.ToInt32(Session["id"])

NavigateUrl='~/searchPublishNew.aspx?id="+<%=id>+"'

不行


定义成 全局变量 --------------------编程问答--------------------
NavigateUrl='~/searchPublishNew.aspx?id=Session["id"]'
--------------------编程问答-------------------- 因为有了runat
所以不能包含<%..%>
你改成<a>就可以了! --------------------编程问答--------------------
引用 22 楼 yqyqyoyo 的回复:
NavigateUrl='~/New.aspx?id=' + <%= session["id"].ToString() %>+'>'

这样就行了。

<a href='~/New.aspx?id='+<%=session["id"].ToString()%>...</a>

也可以这样。

这是正确的!!!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,