簡體   English   中英

如何動態添加gridview

[英]How to dynamically add gridview

我必須在ASP.net中動態添加多個gridview。沒有gridview是根據選擇生成的。

如果我沒有從標題中理解錯誤,動態添加多個網格視圖意味着要在運行時從代碼后面添加網格視圖。

由於 GridView 是 ASP.NET C# 中的一個類,我們可以像其他類對象一樣創建它的對象並設置其屬性,如下所示:

GridView objGV = new GridView();
objGV .AutoGenerateColumns = false;

並且可以從代碼中添加不同類型的列,如 BoundField 和 TemplateField 如下所示:

BoundField field = new BoundField();
field.HeaderText = "Column Header";
field.DataField = Value;
objGV .Columns.Add(field);

最后可以在任何容器控件(如面板)下的 .aspx 上添加此網格視圖對象。

PanelId.Controls.Add(objGV );

要添加多個網格實例,只需在循環中迭代上面的代碼,例如:

for(int i=0;i<yourConditionCount;i++)
{
    GridView objGV = new GridView();
     objGV.ID="GV"+i;   // ID of each grid view must be unique

    // your code logic to set properties and events for grid view

   PanelId.Controls.Add(objGV );
} 

希望我正確理解您的要求,我的解釋會對您有所幫助。

我完全同意@RMadd。 SO 不是代碼編寫服務,您應該首先嘗試給我們一些東西來查看並告訴您哪里出錯了。

但是,如果您不知道從哪里開始,一種方法是添加所有不可見的空網格視圖,並根據選擇將它們設置為可見。

對於你這個含糊不清的問題,我所能給出的答案是含糊不清的。

以下是我使用 Google-foo 找到的其他一些地方:

http://www.dotnetfox.com/articles/create-dynamic-gridview-or-programmatically-create-Asp-Net-gridview-with-dynamic-boundfield-1083.aspx

如何使用asp.net c#並排動態添加gridviews

http://codedisplay.com/runtime-dynamically-creating-gridview-and-bind-data-in-bound-columns-using-asp-net-c-vb-net/

private void BindDynaicGrd()
    {
        //instance of a datatable
        DataTable dt = new DataTable();
        //instance of a datarow
        DataRow drow;
        //creating two datacolums dc1 and dc2 
        DataColumn dc1 = new DataColumn("Code", typeof(string));
        DataColumn dc2 = new DataColumn("Name", typeof(string));
        //adding datacolumn to datatable
        dt.Columns.Add(dc1);
        dt.Columns.Add(dc2);

        if (grd.Rows.Count > 0)
        {
            foreach (GridViewRow gvr in grdSites.Rows)
            {

                CheckBox chk_Single = (CheckBox)gvr.FindControl("chkSingle");
                if (chk_Single.Checked == true)
                {
                    Label lbl_Code = (Label)gvr.FindControl("lblCode");
                    Label lbl_Name = (Label)gvr.FindControl("lblName");
                    //instance of a datarow
                    drow = dt.NewRow();
                    //add rows to datatable
                    //add Column values
                    drow = dt.NewRow();
                    drow["Code"] = lbl_Code.Text;
                    drow["Name"] = lbl_Name.Text.ToString();
                    dt.Rows.Add(drow);
                }
            }
        }
        //set gridView Datasource as dataTable dt.
        gridcl.DataSource = dt;
        //Bind Datasource to gridview
        gridcl.DataBind();
    }

<asp:Panel ID="Panel1" runat="server"> </asp:Panel>


         DataSet ds = new DataSet();
        ds = obj.GetMedicalGridWithAge(MphID, ProductCode);
        if(ds.Tables.Count > 0)
        {
            if (ds.Tables[1].Rows.Count > 0)
            {
                for (int i = 0; i < ds.Tables.Count; i++)
                {

                    GridView gv = new GridView();
                    gv.ID = "gv" + (i + 1);
                    
                    gv.DataSource = ds.Tables[i];
                    gv.DataBind();
                    Panel1.Controls.Add(gv);
                    Label newLine = new Label(); newLine.Text = "<br/>";
                    Panel1.Controls.Add(newLine);

                }
            }
            else
            {
                GridView gv = new GridView();
                gv.ID = "gv" ;

                gv.DataSource = null;
                gv.DataBind();
                Panel1.Controls.Add(gv);
            }
           
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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