0

結果を表示する検索があります。結果には、アイテムと連絡先の2つのタイプがあります。これらは、を使用してListViewの1つのテンプレートの下に表示されます .Union()。ContactDetails.aspxとItemDetails.aspxの2つのページがあります。

以下は私の例です<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 に答える