问题描述
用VS2010做一个c#的界面这是GridView已经做好的页面,但是不是动态绑定,还有要求修改成下面格式的页面,还要求动态绑定,小弟实在没辙了,请各路大神帮忙提供个思路~或者方法就行
解决方案
解决方案二:
如何在GridView中动态添加模板列ICollectionCreateDataSource(){DataTabledt=newDataTable();//创建一个DataTable对象DataRowdr;//定义框架dt.Columns.Add(newDataColumn("id",typeof(Int32)));dt.Columns.Add(newDataColumn("text",typeof(string)));for(inti=0;i<6;i++)//循环遍历并添充DataTable内容{dr=dt.NewRow();dr[0]=i;dr[1]="列表"+i.ToString();dt.Rows.Add(dr);}DataViewdv=newDataView(dt);returndv;}publicclassGridViewTemplate:ITemplate//定义一个继承自ITemplate接口的类{privateDataControlRowTypedcrType;privatestringcolumnName;publicGridViewTemplate(DataControlRowTypetype,stringcolname){dcrType=type;columnName=colname;}publicvoidInstantiateIn(System.Web.UI.Controlcontainer){switch(dcrType){caseDataControlRowType.Header:Literalliteral=newLiteral();literal.Text=columnName;container.Controls.Add(literal);break;caseDataControlRowType.DataRow:DropDownListddl=newDropDownList();ddl.ID="dropdownlist";ddl.AppendDataBoundItems=true;ddl.Items.Add(newListItem("-----请选择------",""));ddl.Items.Add(newListItem("京广高速公路时刻表","98"));ddl.Items.Add(newListItem("京昆高速公路时刻表","368"));ddl.Items.Add(newListItem("京城高速公路时刻表","698"));container.Controls.Add(ddl);break;default:break;}}}protectedvoidButton1_Click(objectsender,EventArgse){for(intindex=1;index<GridView1.Columns.Count;index++){GridView1.Columns[index].Visible=false;}for(inti=0;i<Convert.ToInt32(DropDownList1.SelectedValue);i++){TemplateFieldtf=newTemplateField();tf.ShowHeader=true;tf.HeaderTemplate=newGridViewTemplate(DataControlRowType.Header,"动态添加列");tf.ItemTemplate=newGridViewTemplate(DataControlRowType.DataRow,"");GridView1.Columns.Add(tf);GridView1.DataSource=CreateDataSource();GridView1.DataBind();}}