如何从列表视图获取值

本文关键字:获取 视图 列表 | 更新日期: 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();
        // ...
    }
}