2012-06-21 108 views
0

我在桌子上的下面的列什么是绑定在页面加载,其中的参数工作正常,但我需要添加一个额外的参数,它是下一列的全名,但IM有问题搞清楚我们的语法,在URL中传递额外的参数

这里是我的ASP

<asp:TemplateField HeaderText="ID"> 
    <ItemTemplate> 
     <asp:HyperLink ID="hyperLeadID" runat="server" NavigateUrl='<%#Eval("ID","/documents/Q-Sheet.aspx?LeadID={0}&isHappyCallReferral=yes&isHappyName={1}") %>' 
      Text='<%#Eval("ID")%>'></asp:HyperLink> 
    </ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Referral Name"> 
    <ItemTemplate> 
     <asp:Label ID="lblRefName" CssClass="gvItem" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Name") %>'></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

正如你可以在我添加了ID列的末尾看到isHappyName = {1},我认为它会选择下一个列从0开始,但它一直抛出一个错误,即 “In dex(基于零)必须大于或等于零并小于参数列表的大小。“

有人能帮我通过URL传递usersname

感谢

回答

3

重写的超级链接是这样的:

NavigateUrl='<%# string.Format("/documents/Q-Sheet.aspx?LeadID={0}&isHappyCallReferral=yes&isHappyName={1}", Eval("ID"), Eval("HappyName"))%>' 
+0

可以正常使用,我必须接受本的答案之前,等待5分钟!再次感谢 –

+0

没问题,很高兴有帮助:) – Dimitri

0

的问题是要的String.Format调用(大概<asp:HyperLink>在内部做这个)。它只提供一个参数,而{1}涉及第二个未提供的参数。

尝试使用<a href="#">而不而是采用ASP:超链接(和ASP.NET的内置数据绑定)和手动设置URI - 我不是System.Web.UI.WebControls的粉丝都因为这个原因(我强烈建议您在有机会时查看ASP.NET MVC)。