在后面的代码上访问listview的值

时间:2017-06-14 19:54:16

标签: asp.net listview

我正在从数据库创建listview和绑定数据。

protected void srvButton_Click(object sender, EventArgs e)
{

}

在后面的代码我绑定了这个字段的数据。我正在获取ID,名称列。

现在它显示带有文字的标签和按钮"添加"在按钮上。但是当我点击Add时,我想传递" Id"的值。与该列表视图项相关联,我该怎么做?

.scrollRectToVisible()

2 个答案:

答案 0 :(得分:0)

您可以将OnClick更改为OnCommand并随身携带CommandArgument

<asp:Button CssClass="btn btn-default" ID="srvButton" runat="server"
    Text="Add" OnCommand="srvButton_Command" CommandArgument=<%# Eval("ID") %> />

然后在代码背后

protected void srvButton_Command(object sender, CommandEventArgs e)
{
    int id = Convert.ToInt32(e.CommandArgument);
}

或者您可以使用ListView的OnItemCommand事件以及DataKeyNames属性,并使用没有绑定事件的按钮。

<asp:ListView runat="server" ID="lstService" DataKeyNames="id"
    OnItemCommand="lstService_ItemCommand">

    <asp:Button CssClass="btn btn-default" ID="srvButton" runat="server" Text="Add" />

然后在代码后面从ListView获取datakey。

protected void lstService_ItemCommand(object sender, ListViewCommandEventArgs e)
{
    int id = Convert.ToInt32(lstService.DataKeys[e.Item.DataItemIndex].Values[0]);
}

答案 1 :(得分:0)

首先使用项Id:

的值将CommandArgument添加到Button
<asp:Button CssClass="btn btn-default" ID="srvButton" runat="server" Text="Add" OnClick="srvButton_Click" CommandArgument='<%#Eval("Id")' />

现在您可以在srvButton_Click处理程序中访问它:

protected void srvButton_Click(object sender, EventArgs e)
{
    Button myButton = (Button)sender;
    int i = Convert.ToInt32(myButton.CommandArgument.ToString());
    //----
}