[英]How do I make items in the ListBox as headers of GridView
I have a ListBox
, on_button click, I want all the items in the ListBox
to be displayed as headers in the GridView
. 我有一个
ListBox
,on_button单击,我希望ListBox
中的所有项目在GridView
显示为标题。 Here is the code that i have tried : 这是我尝试过的代码:
protected void DONE4_Click(object sender, EventArgs e)
{
Panel7.Visible = true;
DataTable dt = new DataTable();
for (int i = 0; i < ListBox1.Items.Count; i++)
{
dt.Columns.Add(ListBox1.Items[i].ToString());
}
GridView2.DataSource = dt;
GridView2.DataBind();
foreach (GridViewRow grdRow in GridView2.Rows)
{
DropDownList bind_dropdownlist = new DropDownList(); // defining the property of the DropDownList as bind_dropdownlist
bind_dropdownlist = (DropDownList)(GridView2.Rows[grdRow.RowIndex].Cells[0].FindControl("Pro_List")); // finding the DropDownList from the gridiew for binding
SqlDataAdapter mydata = new SqlDataAdapter("SELECT DISTINCT Profile_Instance FROM Profile_Master", con);
DataSet dset = new DataSet(); // binding the DropDownList with the dataset ds
mydata.Fill(dset, "Table");
bind_dropdownlist.DataSource = dset;
bind_dropdownlist.DataTextField = "Profile_Instance"; // set the DropDownList's DataTextField as designation which display the designation in the dropdownlist after fetching the data from database
bind_dropdownlist.DataBind();
bind_dropdownlist.Items.Insert(0, new ListItem("---Choose Profile---", "-1"));
}
}
I want all the items in the ListBox
to be displayed as header field in a GridView
. 我希望
ListBox
中的所有项目都显示为GridView
标题字段。
The code above gives no errors, but when run it does not work. 上面的代码没有错误,但运行时它不起作用。 Can anyone kindly help me with this?
有人可以帮我这个吗?
Here is my Design code for the GridView
: 这是
GridView
设计代码:
<asp:Panel ID="Panel7" runat="server">
<asp:GridView ID="GridView2" runat="server" CellPadding="4" ForeColor="#333333"
GridLines="None" style="text-align: center; font-size: small">
<Columns>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:DropDownList ID="Pro_List" runat="server">
<asp:ListItem>--Select--</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:Panel>
After setting the DataSource, Call the DataBind
method and see what happens 设置DataSource后,调用
DataBind
方法并查看会发生什么
GridView2.DataSource = dt;
GridView2.DataBind();
EDIT : The below code works just fine. 编辑:以下代码工作得很好。 Tested.
测试。
If you do not have data in the Grid, It wont show anything even the headers unless you give an EmptyText field property value for the grid. 如果Grid中没有数据,除非为网格提供EmptyText字段属性值,否则它甚至不显示任何标题。
DataTable dt = new DataTable();
DataRow rw = default(DataRow);
for (int i = 0; i < ListBox1.Items.Count; i++)
{
dt.Columns.Add(ListBox1.Items[i].ToString(),
System.Type.GetType("System.String"));
}
//Simply adding 10 rows
//Replace this hard coded loop with your looping
// over your data to add rows.
for (int j = 0; j < 10; j++)
{
rw = dt.NewRow();
for (int i = 0; i < ListBox1.Items.Count; i++)
{
rw[ListBox1.Items[i].ToString()] = "Hello there";
}
dt.Rows.Add(rw);
}
GridView1.DataSource = dt;
GridView1.DataBind();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.