C# 单击按钮获取ASP.NET Listview中项目的ID
我在列表视图的每一行上都有一个按钮。C# 单击按钮获取ASP.NET Listview中项目的ID,c#,asp.net,listview,C#,Asp.net,Listview,我在列表视图的每一行上都有一个按钮。 我有一个单击事件的方法,我想在其中获取数据项的ID。 我在列表视图中放置了一个隐藏字段来存储ID。 但是, ListView1.FindControl("hiddenField") is returning null. 我已经尝试了几个不同的事件ARG,但是只有空白事件ARG正在使用这个按钮,所以在事件ARG中我没有任何东西。 我试图将按钮的命令设置为调用commandEventArgs,但无论我使用“eventArgs”之外的什么事件args,我都会得
我有一个单击事件的方法,我想在其中获取数据项的ID。
我在列表视图中放置了一个
隐藏字段来存储ID。
但是,
ListView1.FindControl("hiddenField") is returning null.
我已经尝试了几个不同的事件ARG,但是只有空白事件ARG正在使用这个按钮,所以在事件ARG中我没有任何东西。
我试图将按钮的命令设置为调用commandEventArgs,但无论我使用“eventArgs”之外的什么事件args,我都会得到:
“btnManage\u Click”的重载与“System.EventHandler”的委托不匹配
如何将事件参数放入此按钮
编辑
按钮位于以下ListView的ItemTemplate部分
<asp:ListView ID="ListView1" runat="server" DataSourceID="LinqDataSource1" EnableModelValidation="True" DataKeyNames="Id" InsertItemPosition="LastItem" >
<LayoutTemplate>
<table id="Table2" class="table" runat="server">
<tr id="Tr1" runat="server">
<td id="Td1" runat="server">
<table runat="server" id="itemPlaceholderContainer" style="background-color: #FFFFFF; border-collapse: collapse; border-color: #999999; border-style: none; border-width: 1px; font-family: Verdana, Arial, Helvetica, sans-serif;" border="1">
<tr id="Tr2" runat="server" style="background-color: #DCDCDC; color: #000000;">
<th id="Th1" runat="server"></th>
<th id="Th2" runat="server">Name</th>
<th id="Th3" runat="server">Manage</th>
</tr>
<tr runat="server" id="itemPlaceholder"></tr>
</table>
</td>
</tr>
<tr id="Tr3" runat="server">
<td id="Td2" runat="server" style="text-align: center; background-color: #CCCCCC; font-family: Verdana, Arial, Helvetica, sans-serif; color: #000000;"></td>
</tr>
</table>
</LayoutTemplate>
名称
管理
您可以这样使用
<asp:Button runat="server" CommandArgument='<%# DisplayIndex %>'/>
CommandArgument='<%#Eval("id")'
更多细节
编辑1
假设您有一个属性“id”,那么您可以这样使用
<asp:Button runat="server" CommandArgument='<%# DisplayIndex %>'/>
CommandArgument='<%#Eval("id")'
因此,您应该使用以下方法
CommandArgument='<%#Eval("Id")'
此处sender是按钮单击事件的参数。然后尝试获取信息。我使用以下代码行通过链接按钮发送使用列表视图显示的项目id:
<asp:LinkButton ID="LinkButton1"
runat="server"
Text="Quick View"
Font-Size="Small"
OnCommand="QuickView"
CommandArgument='<%# Eval("Hoarding_Id") %>' >
</asp:LinkButton>
它工作正常…按钮是发送者,我在尝试将发送者转换为ListViewOK时出错。你有Listbox的id吗?看起来不错,但我得到了://名称“DisplayIndex”在当前上下文中不存在。//我在.NET3上。5@hyperGeoMetric你可以用你的财产代替。我原以为这会奏效,但它不喜欢这样:“inti=Convert.ToInt32(myButton.CommandArgument);”。它说:“输入字符串的格式不正确。”我的按钮有:“CommandArgument=''@hyperGeoMetric你能把你列表视图的html放在ItemTemplate中吗?”
You can try this:
ListView lv = (ListView)sender
<asp:LinkButton ID="LinkButton1"
runat="server"
Text="Quick View"
Font-Size="Small"
OnCommand="QuickView"
CommandArgument='<%# Eval("Hoarding_Id") %>' >
</asp:LinkButton>