0
我有一个GridView,其中有10列。10我有5列命名为Ata,Hplan,Hosp,其他(这4个是checkboxfield),其他颜色(Boundfield),再次Alta,Hplan等..现在我想要在用户下拉选择要么5列添加或所有10 ..我需要禁用gridview视图状态?我怎么能实现这一点和第二个问题是我怎么能动态连续数据绑定event.Basic东西时绑定这些列的是,我希望gridview的列名来复制,但是在数据表中我不能给重复列names.please帮助..从asp.net动态数据表中动态绑定gridview列
protected void Btnshow_Click(object sender, EventArgs e)
{
if (DropDownList1.SelectedIndex==1)
{
dtgridbind.Columns.AddRange(new DataColumn[10] { new DataColumn("1_ALta", typeof(bool)),new DataColumn("1_Hplan", typeof(bool)),
new DataColumn("1_Hosp",typeof(bool)),new DataColumn("1_other",typeof(bool)),new DataColumn("1_othercolor",typeof(string)),
new DataColumn("2_ALta", typeof(bool)),new DataColumn("2_Hplan", typeof(bool)),
new DataColumn("2_Hosp",typeof(bool)),new DataColumn("2_other",typeof(bool)),new DataColumn("2_othercolor",typeof(string))});
dtgridbind.Rows.Add(true, false, false, false, "N/A", false, true, false, false, "Red");
dtgridbind.Rows.Add(true, false, false, false, "N/A", false, true, false, false, "Red");
dtgridbind.Rows.Add(true, false, false, false, "N/A", false, true, false, false, "Red");
GridView1.DataSource = dtgridbind;
GridView1.DataBind();
// ViewState["modechange"] = 1;
}
else
{
dtgridbind.Columns.AddRange(new DataColumn[5] { new DataColumn("1_ALta", typeof(bool)),new DataColumn("1_Hplan", typeof(bool)),
new DataColumn("1_Hosp",typeof(bool)),new DataColumn("1_other",typeof(bool)),new DataColumn("1_othercolor",typeof(string))});
dtgridbind.Rows.Add(true, false, false, false, "N/A");
dtgridbind.Rows.Add(true, false, false, false, "N/A");
dtgridbind.Rows.Add(true, false, false, false, "Red");
// ViewState["grid"] = dtgridbind;
GridView1.DataSource = dtgridbind;
GridView1.DataBind();
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
foreach (DataColumn datacol in dtgridbind.Columns)
{
if (datacol.ColumnName.Contains("_othercolor"))
{
BoundField bfield = new BoundField();
bfield.HeaderText = datacol.ColumnName.Substring(2, datacol.ColumnName.Length - 2);
bfield.DataField = datacol.ColumnName;
GridView1.Columns.Add(bfield);
}
else
{
CheckBoxField ck = new CheckBoxField();
ck.HeaderText = datacol.ColumnName.Substring(2, datacol.ColumnName.Length - 2);
ck.DataField = datacol.ColumnName;
GridView1.Columns.Add(ck);
}
}
}
heyyy ..thanks buddy..but荫没有得到内部headercell.text.I任何文本还没有gridview.I静态定义列真不知道是什么原因这是发生..有人知道? –
我在帖子的底部添加了结果的屏幕截图。这与你得到的结果相符吗?数据表绑定到gridview,因此列名将是headercell文本。当我调试代码时,headercell.text填充了数据表列名称。 –