如何在代码隐藏中访问aspx控件
本文关键字:访问 aspx 控件 隐藏 代码 | 更新日期: 2023-09-27 18:30:05
NET。我正在尝试访问SeparatorTemplate
中代码后面的div标记这是我的aspx代码
<div>
<asp:DataList ID="DataList1" runat="server">
<ItemStyle ForeColor="#4A3C8C" BackColor="#E7E7FF"></ItemStyle>
<HeaderTemplate>
<table width="900px">
<tr>
<td width="300px">
<b>Name</b>
</td>
<td width="300px">
<b>Account No</b>
</td>
<td width="300px">
<b>Company</b>
</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<table width="900px">
<tr>
<td align="left" width="300px">
<%# DataBinder.Eval(Container.DataItem, "Name")%>
</td>
<td align="left" width="300px">
<%# DataBinder.Eval(Container.DataItem, "AccountNo")%>
</td>
<td align="left" width="300px">
<%# DataBinder.Eval(Container.DataItem, "Company")%>
</td>
</tr>
</table>
</ItemTemplate>
<HeaderStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#4A3C8C"></HeaderStyle>
<SeparatorTemplate>
<div id="divSeprator" runat="server">//This div tag i want to access in the code behind
<br />
</div>
</SeparatorTemplate>
</asp:DataList>
</div>
我已经尝试访问this.Controls
和DataList1.Controls
,但这两个都不包含这个div。我知道它在SepratorTemplate
中,但我不知道如何从该模板访问控件,因为找不到控件。
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
// Find the div control as htmlgenericcontrol type, if found apply style
System.Web.UI.HtmlControls.HtmlGenericControl div = (System.Web.UI.HtmlControls.HtmlGenericControl)e.Item.FindControl("DivContent");
if(div != null)
div.Style.Add("border-color", "Red");
}
您需要从数据列表行中找到它,如下所示。
HtmlGenericControl div = (HtmlGenericControl)yourDataList.Items[0].FindControl("dvSeparator");
您可以在.Items[]
中传递数据列表项(行)的索引,以便查找要处理的div。
如果你想处理来自所有数据列表项目的div,那么你可以在数据列表的项目数据绑定事件中进行处理,正如@Upvote MarkAnswer在他的回答中所建议的那样。
HtmlGenericControl divSeprator = (HtmlGenericControl)DataList1.Items[0].FindControl("divSeprator");
其中0是您的物品索引。
或者只绑定DataList1_ItemDataBoud事件并使用:
if(e.Item.ItemType == ListItemType.Separator)
HtmlGenericControl divSeprator = (HtmlGenericControl)e.Item.FindControl("divSeprator");
您需要使标签runat="server"并给它id
<div id="div" runat="server">
然后你可以使用访问它
HtmlGenericControl div = HtmlGenericControl("div")