C# 访问中继器HeaderTemplate中的超链接服务器控件

C# 访问中继器HeaderTemplate中的超链接服务器控件,c#,C#,如何使用headertemplate访问“HyperLinkId 1”控件? 我希望像下面这样更改值,但无法访问该控件,因为它一直告诉我“当前上下文中不存在名称“HyperLinkId 1” if(!IsPostBack) { HYPERLINKI1.ImageUrl=“asc.jpg”;//更改图像 } 其他的 { HYPERLINKI1.ImageUrl=“asc.jpg”;//更改图像 } 公共类位置数据 { 私有字符串名称; 专用字符串自动售票机; 公共位置数据(字符串名称、字符串标记器

如何使用headertemplate访问“HyperLinkId 1”控件? 我希望像下面这样更改值,但无法访问该控件,因为它一直告诉我“当前上下文中不存在名称“HyperLinkId 1”

if(!IsPostBack)
{
HYPERLINKI1.ImageUrl=“asc.jpg”;//更改图像
}
其他的
{
HYPERLINKI1.ImageUrl=“asc.jpg”;//更改图像
}
公共类位置数据
{
私有字符串名称;
专用字符串自动售票机;
公共位置数据(字符串名称、字符串标记器)
{
this.name=名称;
this.ticker=ticker;
}
公共字符串名
{
得到
{
返回名称;
}
}
公共字符串记录器
{
得到
{
退票机;
}
}
}
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
HYPERLINKI1.ImageUrl=“asc.jpg”;//更改图像
}
其他的
{
HYPERLINKI1.ImageUrl=“asc.jpg”;//更改图像
}
如果(!IsPostBack)
{
ArrayList值=新的ArrayList();
添加(新位置数据(“Microsoft”、“Msft”);
添加(新位置数据(“英特尔”、“英特尔”));
添加(新位置数据(“戴尔”、“戴尔”));
Repeater1.DataSource=值;
Repeater1.DataBind();
}
}
中继器1:
单位
超链接
象征

该控件不存在。您需要声明一个链接到中继器的OnItemCreated方法,并在其中为控件名执行FindControl,然后在此中设置值

ETA-回应评论

<asp:Repeater OnItemCreated="rptItemCreated" >

.
.
.

请注意,这是从内存中键入的,因此可能需要进行一些调整。此外,我还将您的代码放入了一个简化的表单中,该表单相当于但格式更简洁。

您能给我一个如何使用该表单的示例吗?此示例非常糟糕。已更新以添加更多定义。HTHi对代码进行了一点调整Hyperlink1=(HyperLink)e.Item.FindControl(“Hyperlink1”);
<asp:Repeater OnItemCreated="rptItemCreated" >

.
.
.
protected void rptItemCreated(Object Sender, RepeaterItemEventArgs e)
{

    if(e.Item.ItemType==ListItemType.Header)
    {
        HtmlAnchor HyperLinkID1=(HtmlAnchor)e.Item.FindControl("HyperLinkID1");
        HyperlinkID1.ImageUrl = IsPostBack?"asc.jpg":"asc.jpg;
    }
}