asp.net - 我无法在 itemtemplate 之间的任何内容后面的代码中进行编辑
问题描述
我需要访问 ITEMTEMPLATE 内的一些标签后面的代码,我什至无法应用 RUNAT = SERVER 并输入 ID!事实上,我可以在后面的代码中访问 ITEMTEMPLATE 内的任何内容!我需要 listview + item 模板 PRA 来显示我的数据库中的一些信息,但我还需要添加和操作一些标签,我该怎么做?
我的代码:
<div class="row">
<div class="col-lg-12">
<asp:ListView ID="lv_post" runat="server">
<ItemTemplate runat="server">
<div class="row">
<div class="col-lg-12">
<h2 class="titulo"><b><%# Eval("titulo")%></b></h2>
</div>
<div class="col-lg-12">
<div class="data" style="margin-bottom: 1px;"><i class="far fa-calendar-alt"></i><%# Eval("data") %> <i class="fas fa-user"></i><%# Eval("autor") %></div>
</div>
<div class="col-lg-12" style="margin-bottom: 8px;">
<asp:Label ID="lbl_estrela1" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
<asp:Label ID="lbl_estrela2" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
<asp:Label ID="lbl_estrela3" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
<asp:Label ID="lbl_estrela4" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
<asp:Label ID="lbl_estrela5" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
</div>
<div class="col-lg-12">
<p class="conteudo">"<%# Eval("conteudo") %>"</p>
</div>
</div>
<%--<%# Eval("id_categoria_fk") %>--%>
<hr />
</ItemTemplate>
</asp:ListView>
</div>
</div>
我无法在后面的代码上访问它:
<div class="col-lg-12" style="margin-bottom: 8px;">
<asp:Label ID="lbl_estrela1" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
<asp:Label ID="lbl_estrela2" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
<asp:Label ID="lbl_estrela3" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
<asp:Label ID="lbl_estrela4" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
<asp:Label ID="lbl_estrela5" CssClass="fa fa-star" runat="server" Text=""></asp:Label>
</div>
如果我搬出 ITEMTEMPLATE 我可以,但我需要在仅出现在 itemtemplate 中的信息中间的这些信息。
解决方案
ListView
包含项目列表。描述了每一项的ItemTemplate
布局。因此,模板内的控件存在于列表的每个项目中。Label
这是一个工作示例:
ASPX 页面
<head runat="server">
<title></title>
<style>
.color2 {
color: #d40000;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ListView ID="lv_post" runat="server" ItemType="String">
<ItemTemplate>
<asp:Label ID="lbl_estrela" runat="server" Text="<%# Item %>"></asp:Label>
<br />
</ItemTemplate>
</asp:ListView>
</div>
</form>
</body>
代码背后
public string[] data = { "Data 1", "Data 2", "Data 3", "Data 4" };
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
lv_post.DataSource = data;
lv_post.DataBind();
var lbl_estrela1 = lv_post.Items[1].FindControl("lbl_estrela") as Label;
lbl_estrela1.CssClass = "color2";
var lbl_estrela3 = lv_post.Items[3].FindControl("lbl_estrela") as Label;
lbl_estrela3.CssClass = "color2";
}
}
在上面的例子中,第二个和第四个标签的 css 样式设置为color2
. 注意,使用Items
集合。
可选的
为了更好地理解,看一下页面加载时生成的页面源。
<div>
<span id="lv_post_lbl_estrela_0">Data 1</span>
<br />
<span id="lv_post_lbl_estrela_1" class="color2">Data 2</span>
<br />
<span id="lv_post_lbl_estrela_2">Data 3</span>
<br />
<span id="lv_post_lbl_estrela_3" class="color2">Data 4</span>
<br />
</div>
推荐阅读
- ios - 如何在尾随滑动动作取消时添加动作(Swift 5)
- spring-boot - 不安全 HttpServletRequest getURI 谷歌云
- java - 基于列类的 Java swing cell 渲染器
- google-cloud-sql - 创建源表示实例
- ruby - AXLSX:百分比的条件格式,更改单元格值
- node.js - 使用 Node JS 调用不返回证书链的 URL
- angular - 使用具有相同逻辑的两个组件的角度正确方法
- node.js - Docker-Compose 文件无效
- sql - SQL count products
- python - for循环中的多个变量的解包错误