C# 在运行时查找数据列表中存在的Div
我需要从c#中的代码隐藏文件中找到属于我当前单击的链接按钮的div。然后,我需要为该div应用该类。到目前为止,我尝试通过html表单元格进行访问。但我无法访问我的div。因此,请提供任何有价值的建议来查找divC# 在运行时查找数据列表中存在的Div,c#,asp.net,.net,datalist,C#,Asp.net,.net,Datalist,我需要从c#中的代码隐藏文件中找到属于我当前单击的链接按钮的div。然后,我需要为该div应用该类。到目前为止,我尝试通过html表单元格进行访问。但我无法访问我的div。因此,请提供任何有价值的建议来查找div <asp:DataList ID="DataList1" runat="server" OnItemCommand="DataList1_ItemCommand" style="width:100%"> <ItemTem
<asp:DataList ID="DataList1" runat="server" OnItemCommand="DataList1_ItemCommand" style="width:100%">
<ItemTemplate>
<div runat="server" id="DivContent" style="padding-top: 25px; height: 65px;" align="center"
onmouseover="this.className='MsgClick'" onmouseout="this.className=''" >
<asp:LinkButton ID="LinkButton2" runat="server" Text='<%# Eval("UserName") %>' CommandName="show"
class="InnerMenuFont"></asp:LinkButton>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("AdminId") %>' Visible="False"></asp:Label>
<br />
</div>
<hr style="width: 80%" />
</ItemTemplate>
</asp:DataList>
上面的代码是我的类文件。可能是错误的,但我认为如果div是数据绑定控件(DataList、GridView等)的一部分,即使您设置了runat=“server”,也不可能从代码隐藏中访问div 但是,您可以将div替换为asp:Panel,当页面被提供给浏览器时,该面板将作为div呈现。e、 g
<asp:Panel ID="DivContent" runat="server">
div content... LinkButton, Label etc...
</asp:Panel>
然后,您应该能够在后面的代码中更改样式设置。
您可以使用CssClass属性更改所需内容:
...
Panel currentPanel = (Panel)DataList1.Items[itemIndex].FindControl("DivContent");
currentPanel.CssClass = "NewClassName";
这可能是错误的,但我认为如果div是数据绑定控件(DataList、GridView等)的一部分,即使您设置了runat=“server”,也不可能从代码隐藏访问div 但是,您可以将div替换为asp:Panel,当页面被提供给浏览器时,该面板将作为div呈现。e、 g
<asp:Panel ID="DivContent" runat="server">
div content... LinkButton, Label etc...
</asp:Panel>
然后,您应该能够在后面的代码中更改样式设置。
您可以使用CssClass属性更改所需内容:
...
Panel currentPanel = (Panel)DataList1.Items[itemIndex].FindControl("DivContent");
currentPanel.CssClass = "NewClassName";
我自己做的很好,先生。有一个更简单的解决方案 从您的c#代码后面,div将被判定为as type
HtmlGenericControl
您需要向DataList控件标记中添加一个onitemdatabound=“DataList1\u ItemDataBound”
在itemdatabound事件中,可以修改div
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");
}
我自己做的很好,先生。有一个更简单的解决方案 从您的c#代码后面,div将被判定为as type
HtmlGenericControl
您需要向DataList控件标记中添加一个onitemdatabound=“DataList1\u ItemDataBound”
在itemdatabound事件中,可以修改div
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");
}
使用下面的代码
Control objDiv = e.Item.FindControl("DivContent");
希望它能帮助你使用下面的代码
Control objDiv = e.Item.FindControl("DivContent");
希望它能帮助你这对你有帮助吗?@Freebird:ya但我需要访问div。div需要代码隐藏文件中的程序集引用。但标签是asp:control。这是我在挣扎。你说你的div需要汇编引用是什么意思?请考虑你引用的代码。在这种情况下,标签在键入时变为蓝色。因为它是一个asp控件。但是div不是asp控件na?好的,您希望在什么事件上访问div?这对你有帮助吗?@Freebird:ya但我需要访问div。div需要代码隐藏文件中的程序集引用。但标签是asp:control。这是我在挣扎。你说你的div需要汇编引用是什么意思?请考虑你引用的代码。在这种情况下,标签在键入时变为蓝色。因为它是一个asp控件。但是div不是asp控件吗?好的,在什么情况下您想访问您的div?div可以从c#codebehind引用为HtmlGenericControl,只要它有一个ID和runat=“server”div可以从c#codebehind引用为HtmlGenericControl,只要它有一个ID和runat=“server”