如何使用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
}
我想让电影名称,电影类型,运行时代码背后。。任何帮助都将不胜感激。。
在数据绑定控件中处理按钮控件点击事件的正确方法是设置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..
}
}
}