2012-06-21 145 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)。