使用QueryString显示详细信息

时间:2012-12-11 16:04:05

标签: c# asp.net linq entity-framework

我有一个显示结果的搜索。结果有两种类型项目和联系人。它们使用.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>

希望这是有道理的。

1 个答案:

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