比如我在前台需要用到一个字符串,这个字符串是通过后台绑定的数据源中的个别字段,还有后台的某些变量的值拼接起来的。NavigateURL='<%# "aaa.aspx?id=" + Eval("ID") + "&pwd=" +  <%=strPWD%> %>'类似于这种情况,就是说,拼接的字符串中一部分来自数据源你的字段,直接用Eval("ID") 可以得到,还有一部分需要用到后台的变量值,用<%=strPWD%>方式可以得到,但是两个组合起来,相当于<%%>嵌套,就会出问题。
请问这种方式的应用如何解决?
谢谢~~

解决方案 »

  1.   

    服务器标记不能包含<%=...%>的构造,你可以改用绑定表达式:
    NavigateURL='<%# "aaa.aspx?id=" + Eval("ID") + "&pwd=" + strPWD %>'
    试试。
    strPWD需要定义为页面所在类的公共成员,比如字段、属性等。
      

  2.   


    NavigateURL=aaa.aspx?id=<%#Eval("ID")%> + "&pwd=" + <%=strPWD%> %>
      

  3.   

    编号、密码直接用session存储就行!
    即使拼接字符串,用到<% %>嵌套,对应好就行,不会出现错误
      

  4.   


              <asp:TemplateField HeaderText ="LINK">
                    <ItemTemplate>
                     <asp:HyperLink ID="HyperLink1" runat="server"
                          Text='<%# DataBinder.Eval(Container.DataItem, "name") %>'
                           NavigateUrl='<%# "aaa.aspx?id="
                              + DataBinder.Eval(Container.DataItem, "ID")
                              + "&pwd=" + strPWD %>' />                </ItemTemplate>
                </asp:TemplateField>
      

  5.   

    用<asp:TemplateField,手动添加<asp:HyperLink/>
    NavigateUrl='<%# "about.aspx?id=" + Eval("id") + "&pwd=" + PWD %>' />
      

  6.   

      后台返回字符串,,前台绑定 <%#getString('参数')>
      

  7.   

           <asp:LinkButton ID="lbtnEditor" runat="server" PostBackUrl='<%# Eval("FID", "AdminInfo.aspx?flag=false&fid={0}") %>'CausesValidation="False" CommandName="Edit" Text="编辑"></asp:LinkButton>
    用这个试试
      

  8.   

    呵呵,谢谢大家了。
    搞定了,就是按照NavigateUrl='<%# "about.aspx?id=" + Eval("id") + "&pwd=" + PWD %>' />这种方式就可以了,PWD直接调用,不需要再用<%%>来制定了。
    大家许多人说的都是正确的, 谢啦!