0

我有一个显示结果的搜索。结果有两种类型的项目和联系人。它们显示在 ListView 中的一个模板下,使用 .Union(). 我有两个页面 ContactDetails.aspx 和 ItemDetails.aspx。

下面是我的一个例子<ItemTemplate>。这仅显示联系人部分。我将如何根据它是项目还是联系人来更改这些链接,并据此更改 URL?

这是我需要用于项目的 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>

希望这是有道理的。

4

1 回答 1

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 检查类型的部分,或传递可用于此目的的其他值。

于 2012-12-11T16:27:54.613 回答