2010-07-09 45 views
0

我在ListView中有一个HyperLink控件,我需要传递几个查询字符串参数。在dropdownlist中的selected.item.text的超链接中设置查询字符串参数

<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 ...

+0

您需要使用Javascript,因为您的下拉值只能在客户端知道。 – 2010-07-09 21:49:33

回答

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)"; 
     // 
    } 
} 
相关问题