简体   繁体   English

如何从ListView获取价值

[英]How To Get Value From ListView

I have Code 我有代码

<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>

How to get Value HiddenField from Listview? 如何从Listview获取Value HiddenField?

I'm tring this. 我想这个。 But can't display 但无法显示

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;
}

Update: You got that error because the listview was not binded yet, so i think the best way would be to do all this on the ItemDataBound event. 更新:你得到了这个错误,因为listview还没有绑定,所以我认为最好的方法是在ItemDataBound事件上做所有这些。 You would find the hidden field like below: 你会发现隐藏的字段如下:

  <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;
    }
}

You need to change your code as below 您需要更改以下代码

protected void Page_Load(object sender, EventArgs e)
    {
        HiddenField tt = (HiddenField)lvDetNews.FindControl("HFcari");
        txtTitle.Value = "tess" + tt.Value;
    }

If you want to get value in page load , you should know the row number 如果要在页面加载中获取值,则应该知道行号

var hiddenFld = this.lvDetNews.Items[<row_index>].FindControl("HFcari") as HiddenField;
string value = hiddenFld.Value();

Otherwise you have to done this in ItemDataBound event 否则你必须在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>

Code: 码:

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();
        // ...
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM