当csdn排名升至2万却遇见难题:datalist指定行的超级链接
a.aspx有两列:
CompanyName的值隐藏,用于传给b.aspx页面,
title只显示在a页面,不传给b页面,
按这逻辑,b.aspx应取到CompanyName 的值,实际取到的却是title的值
<asp:DataList id="DataList1" style="Z-INDEX: 101; LEFT: 0px; POSITION: absolute; TOP: 0px" runat="server" RepeatColumns="2" RepeatDirection="Horizontal" font-Size="12px" ItemStyle-Wrap="False" OnItemCommand="DataList1_ItemCommand" DataKeyField="ID" OnItemDataBound="DataList1_ItemDataBound">
<SelectedItemStyle ForeColor="Black"></SelectedItemStyle>
<SeparatorStyle ForeColor="#FF66FF"></SeparatorStyle>
<ItemStyle Wrap="False" HorizontalAlign="Justify" ForeColor="Black" Width="170px" VerticalAlign="Middle"></ItemStyle>
<ItemTemplate>

<asp:LinkButton   runat="server"   id="link"    Text='<%#show(DataBinder.Eval(Container.DataItem, "CompanyName"))%> '></asp:LinkButton>  
<%#DataBinder.Eval(Container.DataItem, "title")%>
</ItemTemplate>
</asp:DataList>    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        LinkButton LinkButton_CompanyName = (LinkButton)e.Item.FindControl("link");
        LinkButton_CompanyName.Visible = false;
    }public string show(object CompanyName)
    {        return "<a href=b.aspx?strCompanyName=" + CompanyName + " target='_blank'>" + CompanyName + " </a>";    } 

解决方案 »

  1.   

    LinkButton  这个不就是用来做链接的吗?你什么意思?
    <asp:LinkButton  runat="server"  id="link" PostBackUrl='b.aspx?strCompanyName+<%#show(DataBinder.Eval(Container.DataItem, "CompanyName"))%> '    Text=' <%#show(DataBinder.Eval(Container.DataItem, "CompanyName"))%> '> </asp:LinkButton>  
      

  2.   

    为什么一定要用LINKBUTTON,我一般都用来做功能按钮,写这样的连接有很多方法:
    直接用<a href='绑定'>绑定</a>
    或者用<span id="" runat="server"></span>后台引用这个SPAN,写其innerHTML="";
    或者HYPERLINK的属性绑定
    你一定要用linkbutton也可这样<asp:LinkButton  runat="server"  id="link"    Text=' <%#DataBinder.Eval(Container.DataItem, "title")%> ' commandname='gotob' commandargument='<%#DataBinder.Eval(Container.DataItem, "CompanyName")%>'> </asp:LinkButton>  
    //然后在DataList1_ItemCommand里面if(e.commandname=='gotob')
    {
      string a=e.commandargument.tostring();
      response.redirect("'b.aspx?strCompanyName="+a);
    }
      

  3.   

    直接<a href="javascript:void()">就行了
    把你的函数放到void里