0

我的表中有下面的列,在页面加载时绑定了什么,那里的参数工作正常,但我需要添加一个额外的参数,它是下一列的全名,但我无法确定我们的语法,

这是我的 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 开始,但它不断抛出错误,即“索引(从零开始)必须更大大于或等于零且小于参数列表的大小。”

有人可以帮我通过 URL 传递用户名吗

谢谢

4

2 回答 2

3

像这样重写超链接:

NavigateUrl='<%# string.Format("/documents/Q-Sheet.aspx?LeadID={0}&isHappyCallReferral=yes&isHappyName={1}", Eval("ID"), Eval("HappyName"))%>'
于 2012-06-21T15:16:38.650 回答
0

问题在于对 String.Format 的调用(大概<asp:HyperLink>是在内部执行此操作)。它仅提供一个参数,而{1}指的是第二个未提供的参数。

尝试使用<a href="#">而不使用 asp:HyperLink (和 ASP.NET 的内置数据绑定)并手动设置 URI - 由于这个原因,我根本不是 System.Web.UI.WebControls 的粉丝(我强烈建议您查看有机会时使用 ASP.NET MVC)。

于 2012-06-21T15:15:29.990 回答