2011-05-06 9 views
0

나는 listview를 가지고 있으며 모든 행에 드롭 다운 목록과 하이퍼 링크 컨트롤이 있습니다.목록보기 행의 컨트롤에 액세스하는 방법

내가하려는 것은 드롭 다운 목록의 선택에 따라 하이퍼 링크의 탐색 URL을 변경하는 것입니다. 하이퍼 링크 컨트롤을 찾을 수 있도록 컨트롤이 다시 게시 된 행을 어떻게 얻을 수 있습니까?

답변

1

는 다음을 시도 할 수 있습니다 :이 마법처럼 작동

<%@ Page Language="C#" %> 
<script type="text/C#" runat="server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      MyList.DataSource = Enumerable.Range(1, 5); 
      MyList.DataBind(); 
     } 
    } 

    protected void DDLChange(object sender, EventArgs e) 
    { 
     var ddl = (DropDownList)sender; 
     var link = (HyperLink)ddl.Parent.FindControl("MyLink"); 
     link.NavigateUrl = ddl.SelectedValue; 
     link.Text = ddl.SelectedValue; 
    } 
</script> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
<head id="Head1" runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="Form1" runat="server"> 
     <asp:ListView ID="MyList" runat="server"> 
      <ItemTemplate> 
       <div> 
        <asp:DropDownList runat="server" AutoPostBack="true" OnSelectedIndexChanged="DDLChange"> 
         <asp:ListItem Value="http://www.google.com" Text="http://www.google.com" /> 
         <asp:ListItem Value="http://www.bing.com" Text="http://www.bing.com" /> 
         <asp:ListItem Value="http://www.yahoo.com" Text="http://www.yahoo.com" /> 
        </asp:DropDownList> 
        <asp:HyperLink runat="server" ID="MyLink" NavigateUrl="http://www.google.com" Text="http://www.google.com" /> 
       </div> 
      </ItemTemplate> 
     </asp:ListView> 
    </form> 
</body> 
</html> 
+0

합니다. 내가하려고했던 것보다 훨씬 쉬웠다. –

관련 문제