在ListView ASP .NET中选择LinkBut​​ton

时间:2013-12-01 07:35:08

标签: c# asp.net listview

我有一个列表视图,其中包含一个列,我需要放置两个链接按钮 - 打开和下载分别打开和下载服务器文件。我为列表视图的每一行都有一个id列。我已将listview的DataKeyNames属性设置为“ID”,并验证DataKeys是否填充了行值。在单击特定链接按钮时,我需要所选ID以确定与该行对应的服务器文件的链接。我添加了linkBut​​ton_click事件,但是当我尝试访问处理程序内的SelectedDataKey时,它仍然为null。如何在链接按钮的单击处理程序中获取ID?

2 个答案:

答案 0 :(得分:1)

您需要使用ListView.ItemCommand并获取DataKeys,如下所示

  protected void EmployeesListView_OnItemCommand(object sender, ListViewCommandEventArgs e)
  {
    if (String.Equals(e.CommandName, "AddToList"))
    {
      // Verify that the employee ID is not already in the list. If not, add the
      // employee to the list.
      ListViewDataItem dataItem = (ListViewDataItem)e.Item;
      string employeeID = 
        EmployeesListView.DataKeys[dataItem.DisplayIndex].Value.ToString();

      if (SelectedEmployeesListBox.Items.FindByValue(employeeID) == null)
      {
        ListItem item = new ListItem(e.CommandArgument.ToString(), employeeID);
        SelectedEmployeesListBox.Items.Add(item);
      }
    }
  }

以上直接从MSDN获取的示例,您最好检查如何更改aspx标记和后面的代码,如上面提供的文档链接中给出的示例。

答案 1 :(得分:1)

你可以用这个:

 protected void ConferencesListView_ItemCommand(object sender, ListViewCommandEventArgs e)
    {
        int _Id;
        int.TryParse(e.CommandArgument.ToString(), out _Id);
        if (e.CommandName == "View")
        {
        }
    }

和设计师:

 <asp:LinkButton  ID="ViewLinkButton" runat="server" CommandName="View" CommandArgument='<%# Eval("ID") %>' />