如何在C#中查看Listview中方法的结果

时间:2011-04-03 20:50:12

标签: c# asp.net listview

我使用asp.net和c#构建网站。我有以下方法

    public List<string> GetAllNameDoc(List<int> ids)
{
    List<string> Names = new List<string>();
    foreach (int r in ids)
        Names.Add(GetNameDoc(r));
    return Names;
}

我想在DataList或Listview或Gridview组件中查看此方法的结果.MayBe组件的数据源类型是对象但问题如何将参数“ids”传递给这些组件。 我试试

    DataList1.DataSource = GetAllNameDoc(ids);
    DataList1.DataBind();

但它不起作用。 感谢每一个尝试过帮助我的人,我希望我现在能很好地解释这个问题。

2 个答案:

答案 0 :(得分:1)

假设这是WPF。您可以创建一个表示文档的类(id的属性和文档名称的属性)。然后,您可以填充这些对象的列表,并将它们设置为列表视图的项目源。以下是一个例子。

在您的Xaml中:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<ListView x:Name="TestListView">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding=
 "{Binding Path=Id}" 
 Header="DocumentId" Width="Auto"/>
<GridViewColumn DisplayMemberBinding=
 "{Binding Path=DocName}" 
 Header="DocName" Width="Auto">
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</Window>

在您的代码隐藏中:

namespace WpfApplication1
{

public partial class MainWindow : Window
{    
    public MainWindow()
    {
        InitializeComponent();
        List<int> ids = new List<int>() { 1, 2, 3 };
        this.TestListView.ItemsSource = GetAllNameDoc(ids);
    }

    public List<Docs> GetAllNameDoc(List<int> ids)
    {
        List<Docs> docs = new List<Docs>();
        foreach (int r in ids)
        {
            docs.Add(new Docs() { Id = r, DocName = GetNameDoc(r) });
        }
        return docs;
    }

    private string GetNameDoc(int id)
    {
        return "SomeDocName";
    }


}

public class Docs
{
    public int Id { get; set; }
    public string DocName { get; set; }
}
}

答案 1 :(得分:0)

Linq可能会让您了解如何传递ID:

public List<string> GetAllNameDoc(List<int> ids) {     
  return ids.Select(id => GetNameDoc(id)).ToList(); 
}

我同意@Hans,如果没有更多详细信息,很难提供更多帮助。