ListView代码如下:
<asp:ListView ID="ListView1"...>
<LayoutTemplate>
<table>
<tr id="itemPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><asp:Label ID="ItemNameLabel" runat="server" Text='<%# Eval("ItemName") %>' /></td>
<td><asp:Label ID="ItemValueLabel" runat="server" Text='<%# Eval("ItemValue") %>' /></td>
<td>
<asp:LinkButton ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
<asp:LinkButton ID="DeleteButton" runat="server" CommandName="Delete" Text="Delete" />
<asp:LinkButton ID="TestButton" runat="server" Text="Test" Width="30px" OnClick="TestButton_Click" />
</td>
</tr>
</ItemTemplate>
......
</asp:ListView>注意那个TestButton按钮,我想在这个按钮的Click事件中获取对应行的信息,即ItemName和ItemValue的值,该怎么写?
<asp:ListView ID="ListView1"...>
<LayoutTemplate>
<table>
<tr id="itemPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><asp:Label ID="ItemNameLabel" runat="server" Text='<%# Eval("ItemName") %>' /></td>
<td><asp:Label ID="ItemValueLabel" runat="server" Text='<%# Eval("ItemValue") %>' /></td>
<td>
<asp:LinkButton ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
<asp:LinkButton ID="DeleteButton" runat="server" CommandName="Delete" Text="Delete" />
<asp:LinkButton ID="TestButton" runat="server" Text="Test" Width="30px" OnClick="TestButton_Click" />
</td>
</tr>
</ItemTemplate>
......
</asp:ListView>注意那个TestButton按钮,我想在这个按钮的Click事件中获取对应行的信息,即ItemName和ItemValue的值,该怎么写?
{
if (String.Equals(e.CommandName, ""))
{
ListViewDataItem dataItem = (ListViewDataItem)e.Item;
}
}
或
protected void btn_Click(object sender, EventArgs e)
{
Button bt = (Button)sender;
int index = ((ListViewDataItem)(bt.NamingContainer)).DataItemIndex;//获得行号
}
ListViewDataItem dataItem = (ListViewDataItem)e.Item;
DataRowView row = (DataRowView)dataItem.DataItem;
Response.Write(row["ItemName"].ToString());不行啊,哪里错了?
sqldatasource, 可以显示数据,说明工作正常。
protected void TestButton_Click(object sender, EventArgs e)
{
LinkButton lb = (LinkButton)sender;
int index = ((ListViewDataItem)lb.NamingContainer).DataItemIndex; //行号
string itemName = ((Label)ListView1.Items[index].FindControl("ItemNameLabel")).Text;
string itemValue = ((Label)ListView1.Items[index].FindControl("ItemValueLabel")).Text;
}