listview
  • query-string
  • hyperlink
  • 2010-07-09 3 views 0 likes 
    0

    나는 ListView에 HyperLink 컨트롤을 가지고 있으며 몇 가지 쿼리 문자열 매개 변수를 전달해야합니다.드롭 다운 목록의 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의 값으로 두 번째 매개 변수를 설정한다고 가정하면 하이퍼 링크는 어떻게 보이나요?

    나는이에 너무 많은 시간을 보냈어요, 그래서 도움이 필요 ...

    Thnx ...

    +0

    드롭 다운 값은 클라이언트 측에서만 알 수 있으므로 Javascript로 작업해야합니다. –

    답변

    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)"; 
         // 
        } 
    } 
    
    관련 문제