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?
答案 0 :(得分:4)
首先,您应该创建一个包含某个类的List,而不是string。然后,您可以将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
和其他属性。
答案 1 :(得分:1)
正如Husein所说,首先用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();
答案 2 :(得分: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"}
};
linq查询
var v = from li in list select new {Name = li[0], City=li[2]};
gv1.DataSource = v;
gv1.DataBind();
和gridview
<asp:DataGrid runat="server" ID="gv1" AutoGenerateColumns="False>
<Columns>
<asp:BoundColumn HeaderText="Name" DataField="Name" />
<asp:BoundColumn HeaderText="City" DataField="City" />
</Columns>
</asp:DataGrid>
但这不是一个好主意 你应该按照两个温柔的男人的建议,建立一个适当的财产结构。