我的表上有以下列在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开始但是它一直在抛出错误,这是 “索引(从零开始)必须大于或等于零且小于参数列表的大小。”
有人可以帮我通过网址传递用户名
由于
答案 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。)