这个将datatable转换为数组的代码困扰了我2天了,因为水平菜,所以写不出,请求大家帮助,具体如下:
运行存储过程,得到datatable,格式如下MenuID(菜单ID) MName(菜单名称) MParentID(父级菜单ID) MIco(图标) MAction(动作)
1 基本信息 0 1,4 CreateMenu(__MenuBody, Menu_Left_Datas[0], 1, 2);
3 供应商 1 4,3 setURL("main.htm","none.htm");
4 生产厂家 1 3,4 setURL("main.htm","none.htm");
2 定单管理 0 2,3 CreateMenu(__MenuBody, Menu_Left_Datas[1], 1, 2);
5 车辆定单 2 4,3 setURL("main.htm","none.htm");
6 定单维护 2 3,4 setURL("main.htm","none.htm");需要将上面的datatable转换为2维数组,格式如下:
Menu_Left_Datas=[
[
{'text':'基本信息', 'ico':'1,4', 'action':'CreateMenu(__MenuBody, Menu_Left_Datas[0], 1, 2);', 'hint':''},
{'text':'供应商', 'ico':'4,3', 'action':'setURL("main.htm","none.htm");', 'hint':''},
{'text':'生产厂家', 'ico':'3,4', 'action':'setURL("main.htm","none.htm");', 'hint':''}
],
[
{'text':'定单管理', 'ico':'2,3', 'action':'CreateMenu(__MenuBody, Menu_Left_Datas[1], 1, 2);', 'hint':''},
{'text':'车辆定单', 'ico':'4,3', 'action':'setURL("main.htm","none.htm");', 'hint':''},
{'text':'定单维护', 'ico':'3,4', 'action':'setURL("main.htm","none.htm");', 'hint':''}
]
]麻烦请给出具体代码,本人在此万分感谢!!!
把一行转为数据
DataTable dt = new DataTable();
...
dt.Rows[0].ItemArray //转为数组
DataTable dt = new DataTable()
...
object[] rows = new object[dt.Rows.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
object[] row = new object[dt.Columns.Count];
for (int index = 0; index < dt.Columns.Count; index++)
{
row[index] = dt.Rows[i][index];
}
rows[i] = row;
}
DataTable dt = new DataTable();
...
object[] rows = new object[dt.Rows.Count];
dt.Rows.CopyTo(rows, 0);
dt.Columns.Add("name");
for (int i = 0; i <= 5; i++)
{
DataRow dr = dt.NewRow();
dr[0] = i;
dr[1] = "name" + i;
dt.Rows.Add(dr);
} object[][] ary = new object[dt.Rows.Count][];
for (int i = 0; i < ary.Length; i++)
{
ary[i] = dt.Rows[i].ItemArray;
} for (int i = 0; i < ary.Length; i++)
{
for (int j = 0; j < ary[i].Length; j++)
{
Response.Write(ary[i][j]);
} Response.Write("<BR>");
}
添加数组
for(int i=0;........
{
//然后
DataRow[] rows1= dt.Select("parentid="+rows[i]["id"].ToSTring() +" or id="+ rows[i]["id"].ToString());
ary[i] = new object[rows1.Length];
//然后
for(int j = 0;j<rows1.Length;.......
{ ary[i][j] = .....
}
}