[英]adding gridview in placeholder dynamically
我在asp.net中創建動態gridview。 為此,我在占位符中添加了gridviews。垂直獲取gridviews。但是我想要水平的gridview。 連續四個Gridview。這是我用來創建Gridview的代碼
protected void Page_Load(object sender, EventArgs e)
{
CreateGrid();
}
private void CreateGrid()
{
DataSet dsServiceId;
dsServiceId = FetchServiceId();
int countServices;
countServices = dsServiceId.Tables[0].Rows.Count;
for (int i = 0; i < countServices; i++)
{
int serviceid = Convert.ToInt32(dsServiceId.Tables[0].Rows[i]["pServiceID"].ToString());
SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
SqlCommand cmd = new SqlCommand("Ezy_opWiseSaleAll", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@date", DateTime.Now.ToString());
cmd.Parameters.AddWithValue("@Serviceid", serviceid);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
GridView gv = new GridView();
gv.ID = "_gridview" + i;
//Queue q = new Queue();
//q.Enqueue(i);
gv.DataSource = ds;
gv.DataBind();
PlaceHolder1.Controls.AddAt(i,gv);
}
}
protected DataSet FetchServiceId()
{
SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
SqlCommand cmd = new SqlCommand("select distinct pServiceID from tbProcTransactions",con);
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
請告訴我該怎么做? 感謝您的任何建議!
像這樣嘗試...這只是示例如何水平顯示gridview。
int i = 0;
Table tablee = new Table();
TableRow row1 = new TableRow();
while (i < countServices)
{
if (i%4==0)
{
row1 = new TableRow();
}
TableCell cell = new TableCell();
GridView gv = new GridView();
gv.ID = i.ToString();
gv.DataSource = dt;
gv.DataBind();
cell.Controls.Add(gv);
row1.Cells.Add(cell);
tablee.Rows.Add(row1);
i++;
}
PlaceHolder1.Controls.Add(tablee);
嘗試這個:
private void CreateGrid()
{
DataSet dsServiceId;
dsServiceId = FetchServiceId();
int countServices;
countServices = dsServiceId.Tables[0].Rows.Count;
//----
Table t = new Table();
TableRow row = new TableRow();
//---
for (int i = 0; i < countServices; i++)
{
int serviceid = Convert.ToInt32(dsServiceId.Tables[0].Rows[i]["pServiceID"].ToString());
SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
SqlCommand cmd = new SqlCommand("Ezy_opWiseSaleAll", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@date", DateTime.Now.ToString());
cmd.Parameters.AddWithValue("@Serviceid", serviceid);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
GridView gv = new GridView();
gv.ID = "_gridview" + i;
gv.DataSource = ds;
gv.DataBind();
//-----
if (i % 4 == 0)
{
row = new TableRow();
}
TableCell cell = new TableCell();
cell.Controls.Add(gv);
row.Controls.Add(cell);
t.Controls.Add(row);
PlaceHolder1.Controls.Add(t);
//------
}
}
網格視圖是表格。 表是塊元素。 您將需要在表和\\或元素容器上設置一些CSS,以將它們放置在“相同”行上。
最快的方法是通過一個表格,然后將gridview的內容添加到同一表格行的新單元格中。 就像是。 (基本代碼)。 我評論了《准則》以幫助您完成該准則。
protected void Page_Load(object sender, EventArgs e)
{
createTable();
}
/// <summary>
/// Creates the table and appends it to the place holder
/// </summary>
void createTable()
{
//create the table
Table table = new Table();
table.ID = "gvd_table";
table.CssClass = "gvd_table";
//create row 1
TableRow row = new TableRow();
row.ID = "gvd_table_row_1";
row.CssClass = "gvd_table_row";
//get the data
DataSet dsServiceId;
dsServiceId = FetchServiceId();
int countServices;
countServices = dsServiceId.Tables[0].Rows.Count;
//the row number
int rows = 1;
//the grids per row
int gridsPerRow = 4;
//enumerate the row
for (int i = 0; i < countServices; i++)
{
//create our table cell
TableCell cell = new TableCell();
cell.ID = string.Format("gvd_table_row_{0}_cell_{1}", rows, i);
cell.CssClass = "gvd_table_row_cell";
//get the service ID
int serviceid = Convert.ToInt32(dsServiceId.Tables[0].Rows[i]["pServiceID"].ToString());
//create the grid control
cell.Controls.Add(createGrid(serviceid));
//add the cell to the row
row.Cells.Add(cell);
//Comment the next statement for all grids on one row.
if (i % gridsPerRow == 0)
{
table.Rows.Add(row);
rows++;
row = new TableRow();
row.ID = string.Format("gvd_table_row_{0}", rows);
row.CssClass = "gvd_table_row";
}
}
table.Rows.Add(row);
PlaceHolder1.Controls.Add(table);
}
/// <summary>
/// gets the service id
/// </summary>
/// <returns></returns>
DataSet FetchServiceId()
{
//TODO: Fetch the data
return new DataSet();
}
/// <summary>
/// create the grid view for a item
/// </summary>
/// <param name="serviceID">the item</param>
/// <returns></returns>
GridView createGrid(int serviceID)
{
//TODO: Create your grid view
return new GridView();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.