如何使用asp.net将Listview项访问到codeehind

本文关键字:访问 codeehind Listview 何使用 asp net | 更新日期: 2023-09-27 18:22:36

我正在使用列表视图来显示表内容,我如何访问列表视图中的值以在按钮中进行编码点击

aspx

<LayoutTemplate>
<table runat="server" id="table1">
 <tr id="Tr1" runat="server">
    <th class="tablehead"id="mname">Movie Name</th>
    <th class="tablehead">Movie Genre</th>
    <th class="tablehead">Runtime</th>
 </tr>
<tr runat="server" id="itemPlaceholder"></tr>

<ItemTemplate>
<tr id="Tr2" runat="server" class="tablerw">
 <td style="background-color:#EEEEEE;width:100px;" class="tablerw"><asp:Label ID="Label5" runat="server" Text='<%#Eval("MovieName") %>' /></td>
 <td style="background-color:#EEEEEE;width:100px;"><asp:Label ID="NameLabel" runat="server" Text='<%#Eval("movieGenre") %>' /></td>
 <td style="background-color:#EEEEEE;width:100px;"><asp:Label ID="Label1" runat="server" Text='<%#Eval("Runtime") %>' /></td>
<td>
 <asp:Button ID="Button1" runat="server" Text="Approve" OnClick="Button1_Click"></asp:Button>//Here is my button
 </ItemTemplate>  

aspx.cs

 protected void Button1_Click(Object sender,
                    System.EventArgs e)
      {
       //I want to access value here
      }

我想让电影名称,电影类型,运行时代码背后。。任何帮助都将不胜感激。。

如何使用asp.net将Listview项访问到codeehind

在数据绑定控件中处理按钮控件点击事件的正确方法是设置CommandArgument&CommandName属性。您可以注册ListView的ItemCommand事件,而不是注册按钮的单击处理程序。这样,每当点击按钮时,就会引发此事件,您可以正确地找到数据,如下所示:-

添加CommandName&CommandArgument属性添加到您的按钮并删除点击处理程序:-

<asp:Button ID="Button1" runat="server" Text="Approve" CommandName="GetData"
            CommandArgument='<%# Eval("MovieId") %>' ></asp:Button>

接下来,使用您的列表视图注册ItemCommand事件:-

 <asp:ListView ID="lstMovies" runat="server" OnItemCommand="ListView1_ItemCommand">

最后在后面的代码中,在ListView1_ItemCommand方法中,检查您的按钮是否引发了事件,并找到所有相应的控件:-

 protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
 {
     if (e.CommandName == "GetData")
     {
        if (e.CommandSource is Button)
         {
             ListViewDataItem item = (e.CommandSource as Button).NamingContainer 
                                      as ListViewDataItem;
             Label NameLabel = item.FindControl("NameLabel") as Label;
             Label Label5 = item.FindControl("Label5") as Label;
             //and so on..
         }
    }
}