Add Column Dynamically to DataGrid to Display Calculation
http://www.c-sharpcorner.com/Code/2003/May/AddingDataGridColumnToCal.aspAdd Column Dynamically to DataGrid to Display Calculation
http://www.c-sharpcorner.com/Code/2003/Feb/DynamicDataGrid.asp
http://www.c-sharpcorner.com/Code/2003/May/AddingDataGridColumnToCal.aspAdd Column Dynamically to DataGrid to Display Calculation
http://www.c-sharpcorner.com/Code/2003/Feb/DynamicDataGrid.asp
解决方案 »
- 关于DataKeyNames
- 网站传到服务器上 “/”应用程序中的服务器错误
- js控制带小数的文本输入框显示千位符的问题!!!!!!在线等 !!!
- 进来帮忙解释段代码!!谢谢啊!
- 关于asp.net2.0 网站文件下载的缓存问题??
- URL重写,怎么让传过去的id转换成用户名后,在重写URL(顶者有分)
- 脚本控制下拉框
- 怪事了,真是怪事了,大家看看怎么回事??
- <body onload="checknode()">在页面Load的时候有多个脚本选择执行,在服务器端要做一些判断,请问如何在服务器端将onload与脚本关联?
- DataGrid中,想把某一列的全部数据累加起来,请问用什么方法实现?
- 虚心的请教:如何得知本网页是从哪个网页中连接过来的?
- 如何才能得到金蝶的K3 V10 用户说明书,用来学习?有没有和我一样的想法
<asp:BoundColumn DataField="Total" HeaderText="Total" DataFormatString="{0:c}">
</asp:BoundColumn>
我就不能随时改变绑定的字段了,应为绑定的字段,是不定的,根据条件改变
Dim myColumn As DataColumn = New DataColumn
myColumn.DataType = System.Type.GetType("System.Decimal")
myColumn.AllowDBNull = False
myColumn.Caption = "Price"
myColumn.ColumnName = "Price"
myColumn.DefaultValue = 25
myTable.Columns.Add(myColumn)
Dim myRow As DataRow
Dim i As Integer
For i = 0 to 9
myRow = myTable.NewRow()
myRow("Price") = i + 1
myTable.Rows.Add(myRow)
Next i
col.HeaderText = "HeadText";
col.DataField = "DataField";
this.DataGrid1.Columns.Add(col);
public class DataGridTemplate : System.Web.UI.ITemplate
{
ListItemType templateType;
string columnName;
string titleName;
public DataGridTemplate(ListItemType type, string colname, string title)
{
templateType = type;
columnName = colname;
titleName = title;
} public void InstantiateIn(System.Web.UI.Control container)
{
Literal lc = new Literal();
switch(templateType)
{
case ListItemType.Header:
lc.Text = "<B>" + titleName + "</B>";
container.Controls.Add(lc);
break;
case ListItemType.Item:
CheckBox cb = new CheckBox();
cb.DataBinding += new EventHandler(TemplateControl_DataBinding);
container.Controls.Add(cb);
break;
case ListItemType.EditItem:
TextBox tb = new TextBox();
tb.Text = "";
container.Controls.Add(tb);
break;
case ListItemType.Footer:
lc.Text = columnName;
container.Controls.Add(lc);
break;
}
} public void TemplateControl_DataBinding(object sender, System.EventArgs e)
{
CheckBox cb;
cb = (CheckBox)sender;
DataGridItem container = (DataGridItem) cb.NamingContainer;
cb.Checked = (bool)((DataRowView)container.DataItem)[columnName];
}
}
以上是定义部分,调用部分在下面Code:
for (int i=0; i<dtRoles.Rows.Count; i++) //根據群組添加欄位
{
TemplateColumn tc = new TemplateColumn();
tc.HeaderStyle.Width = Unit.Pixel(60);
tc.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
tc.HeaderTemplate = new DataGridTemplate(ListItemType.Header, dtRoles.Rows[i]["FRoleName"].ToString(), dtRoles.Rows[i]["FDesc"].ToString());
tc.ItemTemplate = new DataGridTemplate(ListItemType.Item, dtRoles.Rows[i]["FRoleName"].ToString(), dtRoles.Rows[i]["FDesc"].ToString());
tc.EditItemTemplate = new DataGridTemplate(ListItemType.EditItem, dtRoles.Rows[i]["FRoleName"].ToString(), dtRoles.Rows[i]["FDesc"].ToString());
tc.FooterTemplate = new DataGridTemplate(ListItemType.Footer, dtRoles.Rows[i]["FRoleName"].ToString(), dtRoles.Rows[i]["FDesc"].ToString()); dgMenu.Columns.Add(tc);
}
希望能对你有所帮助!
{
DataSet ds=new DataSet();
string strSQL = "";
SqlConnection sqlConn=new SqlConnection(strConn);
BoundColumn bc = new BoundColumn();
if (SearchType !="Test")
{
if (SearchType == "Chapter")
{
if (Session["ClassID"].ToString()!=""||Session["ClassID"].ToString()!=null)
{
strSQL="select top 10 * from sxzxxjg where kmbh="+Session["ClassID"].ToString()+" order by xxrs desc";
bc = new BoundColumn();
bc.HeaderText = "章的名称";
bc.DataField = "zmc";
this.dgrResult.Columns.Add(bc); bc = new BoundColumn();
bc.HeaderText = "学习人数";
bc.DataField = "xxrs";
this.dgrResult.Columns.Add(bc);
}
}
else if (SearchType == "Item")
{
if (Session["ClassID"].ToString()!=""||Session["ClassID"].ToString()!=null)
{
strSQL="Select top 10 * From sxxxjg where kmbh="+Session["ClassID"].ToString()+"order by xxrs desc";
bc = new BoundColumn();
bc.HeaderText = "知识点的名称";
bc.DataField = "mc";
this.dgrResult.Columns.Add(bc); bc = new BoundColumn();
bc.HeaderText = "学习人数";
bc.DataField = "xxrs";
this.dgrResult.Columns.Add(bc);
}
}
else if (SearchType == "Article")
{
strSQL="Select top 10 scmc,cs From jcxgwxqd group by scmc, cs order by cs desc";
bc = new BoundColumn();
bc.HeaderText = "文章名称";
bc.DataField = "scmc";
this.dgrResult.Columns.Add(bc); bc = new BoundColumn();
bc.HeaderText = "浏览次数";
bc.DataField = "cs";
this.dgrResult.Columns.Add(bc);
}
}
}
}
你可以看一看,不知道对你是否有帮助!-
第一步:
DataGrid1.DataSource = dt_Obligate.DefaultView
DataGrid1.DataBind()
DataGrid1.AutoGenerateColumns = False
第二步:
Dim col = New BoundColumn()
col = New BoundColumn()
col.HeaderText = "客户id"
col.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
col.HeaderStyle.Width = New Unit(100)
col.HeaderStyle.Wrap = False
col.ItemStyle.Wrap = True
col.DataField = "id"
DataGrid1.Columns.Add(col)
如果将第二步的代码放在Page_Load事件的时候。col.HeaderText = "客户id"这句话不起作用。(原来dataSet中有5列,显示5列)
如果放在Page_Init事件中,显示的结果是在原来dataSet数据中,多了刚才添加的一列,就是说DataSet中本来显示5列,现在显示6列请问你,第二步是放在那里?
Dim col = New BoundColumn()
col = New BoundColumn()
col.HeaderText = "客户id"
col.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
col.HeaderStyle.Width = New Unit(100)
col.HeaderStyle.Wrap = False
col.ItemStyle.Wrap = True
col.DataField = "id"
DataGrid1.Columns.Add(col)
我这样绑定
第一步:
DataGrid1.DataSource = dt_Obligate.DefaultView
DataGrid1.DataBind()
原来table 中有5列,用了DataGrid1.Columns.Add(col)之后,是在本来的基础上添加,并不是绑定!!
我应该怎样做阿?