簡體   English   中英

動態在占位符中添加gridview

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM