传入URL中的额外参数

时间:2012-06-21 15:12:54

标签: c# asp.net

我的表上有以下列在pageload上绑定的内容,其中的参数工作正常,但我需要添加一个额外的参数,这是下一列的全名,但是我很难弄清楚我们的语法,

这是我的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>

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

有人可以帮我通过网址传递用户名

由于

2 个答案:

答案 0 :(得分:3)

重写这样的超链接:

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

答案 1 :(得分:0)

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

尝试使用<a href="#">而不使用asp:HyperLink(和ASP.NET的内置数据绑定)并手动设置URI - 我根本不是System.Web.UI.WebControls的粉丝理由(我强烈建议你在有机会的时候研究ASP.NET MVC。)