2012-12-11 107 views
0

我有一個顯示結果的搜索。結果有兩種類型的項目和聯繫人。它們使用.Union()顯示在ListView中的一個模板下。我有兩個頁面ContactDetails.aspx和ItemDetails.aspx。使用QueryString來顯示詳細信息

以下是我的<ItemTemplate>的示例。這只是顯示聯繫人部分。我將如何根據它是項目還是聯繫人來更改這些鏈接,並根據此更改網址?

這是我需要使用的物品~/LoggedIn/ItemDetails.aspx?ItemID={0}

   <ItemTemplate> 
         <asp:HyperLink runat="server" ID="link" 
         Text='<%#Eval("Name") %>' 
         NavigateUrl='<%#Eval("ID", "~/LoggedIn/ContactDetails.aspx?ContactID={0}")        %>' /> 
        <br /> 

        <ul> 

         <li> 
          <span><b>Identity:</b><%#Eval("ID") %></span></li> 


         <li><span><b>Phone:</b><%#Eval("Phone") %></span></li> 

        </ul> 

            <asp:HyperLink runat="server" CssClass="btn" ID="ConUpdateLink" 
         Text='Update' 
         NavigateUrl='<%#Eval("ID", "~/Admin/UpdateContact.aspx?ContactID={0}") %>' />       

       </ItemTemplate> 

希望這是有道理的URL。

+0

你的問題是什麼? – ean5533

+0

@ ean5533我將如何根據它是項目還是聯繫人來更改這些鏈接,並根據此更改網址。 – jackncoke

+0

@jackncoke:基本上我可以在你的代碼中看到兩個鏈接。你期望什麼?你需要傳遞一些東西以及'contactId'嗎? –

回答

1

改變它:

<asp:HyperLink runat="server" CssClass="btn" ID="ConUpdateLink" 
     Text='Update' 
     NavigateUrl='<%# GetValidUrl((string)Eval("ID")) %>' /> 

然後在後面的代碼:

public string GetValidUrl(string id) 
    { 
     string ret = string.Empty; 
     if (/*it is item id*/) 
     { 
      ret = string.Format("~/Admin/UpdateContact.aspx?ContactID={0}", id); 
     } 
     else if (/*it is contact id*/) 
     { 
      ret = string.Format("~/LoggedIn/ItemDetails.aspx?ItemID={0}", id); 
     } 
     return ret; 
    } 

你需要添加部分按ID檢查類型,或通過可用於這一目的的其他值。