如何访问列表视图行中的控件

本文关键字:视图 控件 列表 何访问 访问 | 更新日期: 2023-09-27 17:54:59

我有listview,每一行都有一个下拉列表和一个超链接控件。

我要做的是根据下拉列表的选择改变超链接的导航url。我该如何获取控件返回的行,以便找到超链接控件?

如何访问列表视图行中的控件

您可以尝试以下操作:

<%@ 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>