我有一个显示结果的搜索。结果有两种类型项目和联系人。它们使用.Union()
显示在ListView中的一个模板下。我有两页ContactDetails.aspx和ItemDetails.aspx。
以下是我<ItemTemplate>
的示例。这只是显示联系人部分。如何根据项目或联系人更改这些链接并根据该更改URL?
这是我需要用于商品~/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>
希望这是有道理的。
答案 0 :(得分: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检查类型的部分,或者传递可用于此目的的其他值。