GridView的数据源
1、没有设置数据源时GridView不显示
2、设置数据源为null时, GridView1.DataSource = null; GridView1.DataBind();
3、设置数据源为数组时(支持一维数组而不支持二维数组):
private void Form1_Load(object sender, EventArgs e)
{
string[,] arr = new string[2, 3];
arr[0, 0] = "1";
arr[0, 1] = "2";
arr[0, 2] = "22";
arr[1, 0] = "3";
arr[1, 1] = "4";
arr[1, 2] = "2";
dataGridView1.DataSource = ProcessArr(arr);
}
private string[] ProcessArr(string[,] arr)
{
private void Form1_Load(object sender, EventArgs e)
{
string[,] arr = new string[2, 3];
arr[0, 0] = "1";
arr[0, 1] = "2";
arr[0, 2] = "22";
arr[1, 0] = "3";
arr[1, 1] = "4";
arr[1, 2] = "2";
dataGridView1.DataSource = ProcessArr(arr);
}
private string[] ProcessArr(string[,] arr)
{
string[] newArr=new string[arr.Length];
int index =0;
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
newArr[index] = arr[i, j];
index++;
}
}
return newArr;
}
int index =0;
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
newArr[index] = arr[i, j];
index++;
}
}
return newArr;
}
把二维数组转化为DataTalbe
protected void Page_Load(object sender, EventArgs e)
{
string[,] arr = new string[2, 3];
arr[0, 0] = "1";
arr[0, 1] = "2";
arr[0, 2] = "22";
arr[1, 0] = "3";
arr[1, 1] = "4";
arr[1, 2] = "2";
this.GridView1.DataSource = ConvertToDataTable(arr);
GridView1.DataBind();
}
private DataTable ConvertToDataTable(string[,] arr)
{
DataTable dataSouce = new DataTable();
for (int i = 0; i < arr.GetLength(1);i++ )
{
DataColumn newColumn = new DataColumn(i.ToString(), arr[0,0].GetType());
dataSouce.Columns.Add(newColumn);
}
for (int i = 0; i < arr.GetLength(0); i++)
{
DataRow newRow = dataSouce.NewRow();
for (int j = 0; j < arr.GetLength(1); j++)
{
newRow[j.ToString()] = arr[i, j];
}
dataSouce.Rows.Add(newRow);
}
return dataSouce;
}
{
string[,] arr = new string[2, 3];
arr[0, 0] = "1";
arr[0, 1] = "2";
arr[0, 2] = "22";
arr[1, 0] = "3";
arr[1, 1] = "4";
arr[1, 2] = "2";
this.GridView1.DataSource = ConvertToDataTable(arr);
GridView1.DataBind();
}
private DataTable ConvertToDataTable(string[,] arr)
{
DataTable dataSouce = new DataTable();
for (int i = 0; i < arr.GetLength(1);i++ )
{
DataColumn newColumn = new DataColumn(i.ToString(), arr[0,0].GetType());
dataSouce.Columns.Add(newColumn);
}
for (int i = 0; i < arr.GetLength(0); i++)
{
DataRow newRow = dataSouce.NewRow();
for (int j = 0; j < arr.GetLength(1); j++)
{
newRow[j.ToString()] = arr[i, j];
}
dataSouce.Rows.Add(newRow);
}
return dataSouce;
}
4、使用TaskResults1.DisplayResults来显示SimpleTaskResult时出错“类型“HiddenField”的控件“TaskResults1_hfSelectedNode”必须放在具有 runat=server 的窗体标记内”,原因不清楚!????
但使用TaskResults1.BindToDataSet可以替代进行