0
protected void BindGV()
        {
            List<List<string>> list = new List<List<string>>()
            {
                new List<string>() {"Hussain","IT","Hyderabad" },
                new List<string>() { "Sharief","IT","Bangalore"},
                new List<string>() { "Shaik","IT","Chennai"}
            };
            gv1.DataSource = list;
            gv1.DataBind();

        }

Gridviewに名前と都市のみを表示したい。私は次のように使用したい:

<asp:Boundfield Datafield="" Headertext="Name"/>

この場合のDataFieldの使用方法は??

4

3 に答える 3

4

まず、文字列ではなく、クラスを使用してリストを作成する必要があります。次に、DataGridのクラスプロパティを列として使用できます。

例えば:

public class Personnel
{
    public string Name { get; set; }
    public string Department { get; set; }
    public string Location { get; set; }
}

次に、次のようなデータソースを作成できます。

protected void BindGV()
{
    List< Personnel > list = new List< Personal >()
    {
        new Personnel {Name = "Hussain", Department = "IT", Location = "Hyderabad" },
        new Personnel {Name = "Sharief", Department = "IT", Location = "Bangalore"},
        new Personnel {Name = "Shaik",  Department = "IT", Location = "Chennai"}
    };

    gv1.DataSource = list;
    gv1.DataBind();

}

背後にあるコードで、次のようなDataGridを作成します

<asp:DataGrid runat="server" ID="gv1" AutoGenerateColumns="False>
    <Columns>
        <asp:BoundColumn HeaderText="Name" DataField="Name" />
        <asp:BoundColumn HeaderText="Dept" DataField="Department" />
        <asp:BoundColumn HeaderText="City" DataField="Location" />
    </Columns>
</asp:DataGrid>

そしてそれはそれであるはずです。

更新:あなたのコメントによると、あなたはDataFieldプログラムでアクセスしたいと思っています。これを行うには、プロパティを列挙してgv1.Columnsから、結果をにキャストしBoundColumnます。DataFieldこれにより、およびその他のプロパティにアクセスできるようになります。

于 2013-03-05T11:17:50.443 に答える
1

フセインが言ったように、まず Get 、 Set でクラスを作成します。お気に入り

Public class BindGV
{
    public string name { get; set ;}
    public string Profile { get; set ;}
    public string loc { get; set ;}
}

aspx ページで Gridview BoundField....

<ItemTemplate..>
    <b><%# DataBinder.Eval(Container, "DataItem.Title") %> </b>
    <br />
    <%# DataBinder.Eval(Container, "DataItem.Description") %>
</ItemTemplate>

... または Apsx.cs コード

BindGV.datasource=object.GetDetails();
BindGV.dataBind();
于 2013-03-05T11:22:29.750 に答える
0

あなたはlinqを利用することができます

List<List<string>> list = new List<List<string>>()
                              {
                                 new List<string>() {"Hussain", "IT", "Hyderabad"},
                                 new List<string>() {"Sharief", "IT", "Bangalore"},
                                 new List<string>() {"Shaik", "IT", "Chennai"}
                              };

リンククエリ

var v = from li in list select new {Name = li[0], City=li[2]};
gv1.DataSource = v;
gv1.DataBind();

そしてグリッドビュー

<asp:DataGrid runat="server" ID="gv1" AutoGenerateColumns="False>
  <Columns>
    <asp:BoundColumn HeaderText="Name" DataField="Name" />
    <asp:BoundColumn HeaderText="City" DataField="City" />
 </Columns>
</asp:DataGrid>

しかし、これを使用するのは得策ではありません。
2 人の紳士が示唆するように、あなたは財産の適切な構造を持っている必要があります。

于 2013-03-05T11:46:38.357 に答える