Datasource的数据源是Arraylist,而且列数无法确定,要根据查询结果动态的生成。由于对Arraylist的结构不是很清楚,我不知道该怎样动态的设定每一列的DataFeild和HeaderText,请高手支招。
解决方案 »
- 大文本数据合并
- 使用ICSharpCode.SharpZipLib.dll压缩文件后用WinRar解压时异常
- 急!!!在线等。C#开发无线网络管理软件中的网络列表控件问题
- 【不知道怎么入手】C# 如何实现 HTMl 页面打印【初次学习】
- 登录请求问题
- VS2003里winform关于AxWebBrowser怎么调用一个页面的方法.
- 在.cs文件中可以调用form页面中的控件属性吗??????
- 关于C# winform MDI的问题
- 关于打印问题----在线等!谢谢
- 请教一个有关控件OnPaint的问题。
- C#关于时间比较的问题!!在线等待!!!!!!!!!!!!!!!!!!!!!!!!!!
- 请教个窗体渐变透明的问题
private void Form1_Load(object sender, EventArgs e)
{ DataGridView1.RowsAdded += new DataGridViewRowsAddedEventHandler(
DataGridView1_RowsAdded);
DataGridView1.CellValueChanged += new DataGridViewCellEventHandler(
DataGridView1_CellValueChanged);
DataGridView1.ColumnHeaderMouseClick += new DataGridViewCellMouseEventHandler(
DataGridView1_ColumnHeaderMouseClick);
}
private void DataGridView1_ColumnHeaderMouseClick(object sender,
DataGridViewCellMouseEventArgs e)
{
DataGridViewColumn clickedColumn = DataGridView1.Columns[e.ColumnIndex];
if (clickedColumn.SortMode != DataGridViewColumnSortMode.Automatic)
this.SortRows(clickedColumn, true);
}
private void DataGridView1_RowsAdded(object sender,
DataGridViewRowsAddedEventArgs e)
{
this.SortRows(DataGridView1.SortedColumn, false);
}
private void DataGridView1_CellValueChanged(object sender,
DataGridViewCellEventArgs e)
{
if (DataGridView1.SortedColumn != null &&
e.ColumnIndex == DataGridView1.SortedColumn.Index)
this.SortRows(DataGridView1.SortedColumn, false);
}
private void SortRows(DataGridViewColumn sortColumn, bool orderToggle)
{
if (sortColumn == null)
return; if (sortColumn.SortMode == DataGridViewColumnSortMode.Programmatic &&
DataGridView1.SortedColumn != null &&
!DataGridView1.SortedColumn.Equals(sortColumn))
{
DataGridView1.SortedColumn.HeaderCell.SortGlyphDirection =
SortOrder.None;
} ListSortDirection sortDirection;
if (orderToggle)
{
sortDirection =
DataGridView1.SortOrder == SortOrder.Descending ?
ListSortDirection.Ascending : ListSortDirection.Descending;
}
else
{
sortDirection =
DataGridView1.SortOrder == SortOrder.Descending ?
ListSortDirection.Descending : ListSortDirection.Ascending;
}
SortOrder sortOrder =
sortDirection == ListSortDirection.Ascending ?
SortOrder.Ascending : SortOrder.Descending; DataGridView1.Sort(sortColumn, sortDirection); if (sortColumn.SortMode == DataGridViewColumnSortMode.Programmatic)
{ sortColumn.HeaderCell.SortGlyphDirection = sortOrder;
}
}
bf.HeaderText = "Item";
ScheduleGrid.Columns.Add(bf);
DataSet ds = GridBind.GridViewBind(reportType, productType);
//数据动态绑定
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
BoundField bf1 = new BoundField();
bf1.DataField = ds.Tables[0].Rows[i][1].ToString();
bf1.HeaderText = ds.Tables[0].Rows[i][1].ToString();
ScheduleGrid.Columns.Add(bf1);
}