private void AddDataGridTableStyle() { // Create a new DataGridTableStyle and set MappingName. DataGridTableStyle myGridStyle = new DataGridTableStyle(); myGridStyle.MappingName = "Customers"; // Create two DataGridColumnStyle objects. DataGridColumnStyle colStyle1 = new DataGridTextBoxColumn(); colStyle1.MappingName = "firstName";
DataGridColumnStyle colStyle2 = new DataGridBoolColumn(); colStyle2.MappingName = "Current"; // Add column styles to table style. myGridStyle.GridColumnStyles.Add(colStyle1); myGridStyle.GridColumnStyles.Add(colStyle2); // Add the grid style to the GridStylesCollection. myDataGrid.TableStyles.Add(myGridStyle); } 你当然可以把MappingName更换为中文名称
C#private void MakeTable(DataTable myTable){ // Create a DataTable. DataTable myTable = new DataTable("myTable"); // Create a DataColumn and set various properties. DataColumn myColumn = new DataColumn(); myColumn.DataType = System.Type.GetType("System.Decimal"); myColumn.AllowDBNull = false; myColumn.Caption = "Price"; myColumn.ColumnName = "Price"; myColumn.DefaultValue = 25; // Add the column to the table. myTable.Columns.Add(myColumn); // Add 10 rows and set values. DataRow myRow; for(int i = 0; i < 10; i++){ myRow = myTable.NewRow(); myRow["Price"] = i + 1; // Be sure to add the new row to the DataRowCollection. myTable.Rows.Add(myRow); } }
{
// Create a new DataGridTableStyle and set MappingName.
DataGridTableStyle myGridStyle =
new DataGridTableStyle();
myGridStyle.MappingName = "Customers"; // Create two DataGridColumnStyle objects.
DataGridColumnStyle colStyle1 =
new DataGridTextBoxColumn();
colStyle1.MappingName = "firstName";
DataGridColumnStyle colStyle2 =
new DataGridBoolColumn();
colStyle2.MappingName = "Current"; // Add column styles to table style.
myGridStyle.GridColumnStyles.Add(colStyle1);
myGridStyle.GridColumnStyles.Add(colStyle2); // Add the grid style to the GridStylesCollection.
myDataGrid.TableStyles.Add(myGridStyle);
}
你当然可以把MappingName更换为中文名称
// Create a DataTable. DataTable myTable = new DataTable("myTable");
// Create a DataColumn and set various properties.
DataColumn myColumn = new DataColumn();
myColumn.DataType = System.Type.GetType("System.Decimal");
myColumn.AllowDBNull = false;
myColumn.Caption = "Price";
myColumn.ColumnName = "Price";
myColumn.DefaultValue = 25;
// Add the column to the table.
myTable.Columns.Add(myColumn);
// Add 10 rows and set values.
DataRow myRow;
for(int i = 0; i < 10; i++){
myRow = myTable.NewRow(); myRow["Price"] = i + 1;
// Be sure to add the new row to the DataRowCollection.
myTable.Rows.Add(myRow);
}
}
MyCol = New BoundColumn
MyCol.HeaderText = "text"
MyCol.HeaderStyle.Width = Unit.Pixel(100)
MyCol.DataField = "column"
MyCol.ItemStyle.Width = Unit.Pixel(100)
DataGrid1.Columns.Add(MyCol)
C#:BoundColumn MyCol;
MyCol = new BoundColumn();
MyCol.HeaderText = "text";
MyCol.HeaderStyle.Width = Unit.Pixel(100);
MyCol.DataField = "column";
MyCol.ItemStyle.Width = Unit.Pixel(100);
DataGrid1.Columns.Add(MyCol);
/// 清空GRID的COLUMN
/// </summary>
/// <param name="vardg"></param>
private static void RefreshGrid(DataGrid vardg)
{
vardg.Columns.Clear();
BoundColumn dc = new BoundColumn();
dc.HeaderText = "ID";
dc.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
dc.DataField = "ID";
dc.Visible = false;
dc.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
vardg.Columns.AddAt(0,dc); dc = new BoundColumn();
dc.HeaderText = "序号";
dc.HeaderStyle.Wrap = false;
dc.HeaderStyle.Width = 30;
dc.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
dc.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
vardg.Columns.AddAt(1,dc);
} /// <summary>
/// 创建按专家打印的GRID
/// </summary>
/// <param name="vardg"></param>
private static void CreateExpertDataGrid(DataGrid vardg)
{
RefreshGrid(vardg); BoundColumn dc = new BoundColumn();
dc.HeaderText = "专家姓名";
dc.HeaderStyle.Wrap = false;
dc.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
dc.DataField = "EXPERT_NAME";
dc.SortExpression = "EXPERT_NAME";
dc.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
vardg.Columns.AddAt(2,dc);
dc = new BoundColumn();
dc.HeaderText = "所属医院";
dc.HeaderStyle.Wrap = false;
dc.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
dc.DataField = "HOSPITAL";
dc.SortExpression = "HOSPITAL";
vardg.Columns.AddAt(3,dc);
TemplateColumn tc = new TemplateColumn();
tc.ItemTemplate = new ColumnTemplate();
tc.HeaderText = "打印";
dc.HeaderStyle.Wrap = false;
tc.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
tc.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
tc.HeaderStyle.Width = 30;
vardg.Columns.AddAt(4,tc);
tc = new TemplateColumn();
tc.ItemTemplate = new ColumnTemplateExport();
tc.HeaderText = "导出";
dc.HeaderStyle.Wrap = false;
tc.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
tc.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
tc.HeaderStyle.Width = 30;
vardg.Columns.AddAt(5,tc);
}
/// 实现ITemplate接口,用来打印
/// </summary>
public class ColumnTemplate : ITemplate
{
public void InstantiateIn(Control container)
{
LinkButton lb = new LinkButton();
lb.Text = "打印";
lb.CommandName = "Print";
container.Controls.Add(lb);
}
} /// <summary>
/// 实现ITemplate接口,用来导出
/// </summary>
public class ColumnTemplateExport : ITemplate
{
public void InstantiateIn(Control container)
{
LinkButton lb = new LinkButton();
lb.Text = "导出";
lb.CommandName = "Export";
container.Controls.Add(lb);
}
}
其中包含:
1.快速搜索查询功能(查询列表中的结果)
2.功能按钮(连接到其他页面)
3.翻页控制,页码大小,跳转等
用DataGrid我觉得可以用好的利用其中的功能
如果用datatable,很多功能都要自己写了
而且我的数据量也不是很大的那中这些都是题外话了,我另发帖了此帖问题解决,结帖
BoundColumn MyCol;
for (int i=0;i<dt.Columns.Count;i++)
{
MyCol=new BoundColumn();
MyCol.HeaderText=dt.Columns[i].Caption;
MyCol.DataField=dt.Columns[i].ColumnName;
ShowResult.Columns.Add(MyCol);
}
ShowResult.DataBind();
问题解决
asp:datagrid id="ShowResult" Width="100%" BackColor="White" Runat="server" CellPadding="4" BorderWidth="1px"
BorderStyle="None" BorderColor="#3366CC" AutoGenerateColumns="false">
AutoGenerateColumns="false"> 是 false 问题解决