Установите параметр строки запроса в гиперссылке из selected.item.text в выпадающем списке - PullRequest
0 голосов
/ 10 июля 2010

У меня есть элемент управления HyperLink в ListView, и мне нужно передать несколько параметров строки запроса.

<asp:HyperLink ID="HyperLink" runat="server" NavigateUrl='<%# string.Format("Page.aspx?Param1={0}", Server.UrlEncode(Container.DataItem.ToString())) %>'  
Text='<%# Container.DataItem %>' />  

Первый параметр основан на текущем значении DataItem в LV.

Предположим, я хочу установить второй параметр со значением из Selected.Item.Text в DropDownList на той же странице, как будет выглядеть HyperLink?

Я потратил слишком много времени на это, поэтому мне нужна помощь ...

Thnx ...

1 Ответ

0 голосов
/ 10 июля 2010

Попробуйте это:

<form id="form1" runat="server">
    <asp:DropDownList runat="server" ID="DropDownList">
        <asp:ListItem Text="1" Value="1" />
        <asp:ListItem Text="2" Value="2" />
        <asp:ListItem Text="3" Value="3" />
    </asp:DropDownList>
    <asp:GridView runat="server" ID="sample" AutoGenerateColumns="true">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:HyperLink ID="HyperLink" runat="server"
                        OnDataBinding="HyperLink_DataBinding"
                        NavigateUrl='<%# String.Format(
                            "Default.aspx?Param1={0}", 
                            Server.UrlEncode(Container.DataItem.ToString())) %>'
                        Text='<%# Container.DataItem %>' />  
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
</form>

И этот код позади:

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            sample.DataSource = new string[] { "A", "B", "C" };
            sample.DataBind();
        }
    }

    protected void HyperLink_DataBinding(object sender, EventArgs e)
    {
        ((HyperLink)sender).Attributes["onclick"] =
            "alert(this.href + '&Param2='+ " + DropDownList.ClientID + ".value)";
        //
    }
}
...