为什么我只得到没有任何数据的空行?Asp.net GridView不显示任何数据,只是空行
编辑:
现在,我看到我的感谢Phil数据。 我只想知道两件小事:
- 什么是
DataKeyNames
? - 我将如何使用LINQ获取这些数据?
这里是我的代码:
<asp:GridView ID="gridProcesses" runat="server" AutoGenerateColumns="False"
EnableModelValidation="True" Width="400px" DataKeyNames="ID">
<Columns>
<asp:BoundField HeaderText="Name" />
<asp:BoundField HeaderText="CPU" />
<asp:BoundField HeaderText="RAM" />
<asp:CommandField ButtonType="Button" SelectText="Kill" ShowSelectButton="True">
<ItemStyle HorizontalAlign="Center" Width="30px" />
</asp:CommandField>
</Columns>
</asp:GridView>
代码背后
public partial class OsControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
private List<string> getTestData()
{
List<string> tData = new List<string>();
Random rand = new Random();
for (int i = 0; i < 10; i++)
{
tData.Add("proc" + i + "_" + rand.Next(100) + "_" + rand.Next(100));
}
return tData;
}
protected void btnLoad_Click(object sender, EventArgs e)
{
DataTable dtProcesses = new DataTable();
dtProcesses.Columns.Add("Name", System.Type.GetType("System.String"));
dtProcesses.Columns.Add("CPU", System.Type.GetType("System.Int32"));
dtProcesses.Columns.Add("RAM", System.Type.GetType("System.Int32"));
dtProcesses.Columns.Add("ID", System.Type.GetType("System.Int32"));
int id = 0;
foreach (string line in getTestData())
{
string[] items = line.Split('_');
DataRow row = dtProcesses.NewRow();
row["Name"] = items[0];
row["CPU"] = int.Parse(items[1]);
row["RAM"] = int.Parse(items[1]);
row["ID"] = id++;
dtProcesses.Rows.Add(row);
}
gridProcesses.DataSource = dtProcesses;
gridProcesses.DataBind();
}
}-
大,它的作品!我在原来的帖子中添加了一些更多的问题,如果你帮助我的话。 – Primoz 2010-11-06 14:13:22
@Primoz - 顺便说一句,你可能会考虑将'System.Type.GetType(“System.String”)'改为'typeof(string)'。更清洁,并增加了编译时“打印错误”检查的好处,即使用硬编码字符串也不会得到这些好处。 – 2010-11-06 14:19:01
您错过了''中的'DataField =“Name”'。它应该是' '(它实际上是Phil Hunt的答案)。 –
a1ex07
2010-11-06 14:20:32