在droplink中的selected.item.text中设置Hyperlink中的querystring参数

时间:2010-07-09 21:35:38

标签: listview query-string hyperlink

我在ListView中有一个HyperLink控件,我需要传递一些查询字符串参数。

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

第一个参数基于LV中的当前DataItem值。

假设我想在同一页面的DropDownList中使用Selected.Item.Text中的值设置第二个参数,HyperLink将如何显示?

我花了太多时间在这上面,所以我需要一些帮助...

...日Thnx

1 个答案:

答案 0 :(得分:0)

试试这个:

<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)";
        //
    }
}