2012-12-11 165 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检查类型,或通过可用于这一目的的其他值。