如何从列表视图获取值
本文关键字:获取 视图 列表 | 更新日期: 2023-09-27 17:55:45
我有代码
<head>
<title><%=txtTitle.Text</title>
</head>
<asp:HiddenField ID="txtTitle" runat="server" />
<asp:ListView ID="lvDetNews" runat="server" DataSourceID="sdsBerita">
<ItemTemplate>
<asp:HiddenField ID="HFcari" runat="server" Value='<%# Eval("judul_berita") %>' />
<h2><%# Eval("judul_berita") %></a></h2>
</ItemTemplate>
</asp:ListView>
如何从列表视图中获取值隐藏字段?
我正在叽叽喳喳。但无法显示
protected void Page_Load(object sender, EventArgs e)
{
HiddenField tt = (HiddenField)lvDetNews.FindControl("HFcari");
txtTitle.Value = "tess" + tt;
}
protected void Page_Load(object sender, EventArgs e)
{
HiddenField tt = (HiddenField)lvDetNews.FindControl("HFcari");
txtTitle.Value = "tess" + tt.Value;
}
更新:您收到该错误是因为列表视图尚未绑定,因此我认为最好的方法是在 ItemDataBound 事件上执行所有这些操作。您会发现隐藏字段如下所示:
<asp:ListView ID="lvDetNews" runat="server" DataSourceID="sdsBerita" OnItemDataBound="lvDetNews_ItemDataBound">
<ItemTemplate>
<asp:HiddenField ID="HFcari" runat="server" Value='<%# Eval("judul_berita") %>' />
<h2><%# Eval("judul_berita") %></a></h2>
</ItemTemplate>
</asp:ListView>
protected void lvDetNews_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
HiddenField tt = (HiddenField)e.Item.FindControl("HFcari");
txtTitle.Value = "tess" + tt.Value;
}
}
您需要
按如下方式更改代码
protected void Page_Load(object sender, EventArgs e)
{
HiddenField tt = (HiddenField)lvDetNews.FindControl("HFcari");
txtTitle.Value = "tess" + tt.Value;
}
如果你想在页面加载中获取值,你应该知道行号
var hiddenFld = this.lvDetNews.Items[<row_index>].FindControl("HFcari") as HiddenField;
string value = hiddenFld.Value();
否则,您必须ItemDataBound
事件中执行此操作
<head>
<title><%=txtTitle.Text</title>
</head>
<asp:HiddenField ID="txtTitle" runat="server" />
<asp:ListView ID="lvDetNews" runat="server" DataSourceID="sdsBerita" OnItemDataBound="lvDetNews_ItemDataBound">
<ItemTemplate>
<asp:HiddenField ID="HFcari" runat="server" Value='<%# Eval("judul_berita") %>' />
<h2><%# Eval("judul_berita") %></a></h2>
</ItemTemplate>
</asp:ListView>
法典:
protected void lvDetNews_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
var hiddenFld = e.Item.FindControl("HFcari") as HiddenFiled;
string value = hiddenFld.Value();
// ...
}
}