2012-07-27 78 views
1

例:mypage.aspx?num=xxx如何添加動態ň複選框列的GridView ASP.NET

我怎麼能一個num複選框列在mypages通過後臺代碼添加到的GridView

我又增加了num數據表與參數typeof(bool),但是當我裝我的空間,該複選框被禁用的,所以我不能檢查。

+0

檢查我的答案,它會工作。 – 2012-07-27 10:49:56

回答

3

這是我網格的aspx代碼

所有的
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false"> 
    <Columns>   
    </Columns> 
</asp:GridView> 

首先添加num許多模板字段到你的GridView

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    int num = Request.QueryString["num"]; 

    for (int i = 0; i < num; i++) 
    { 
     TemplateField tf = new TemplateField(); 
     tf.HeaderText = "Status"; 
     gv.Columns.Add(tf); 
    }   
} 

添加模板精密組件後,現在我們將添加複選框到GridView。我們編寫一個函數來添加複選框。以下是代碼

private void AddCheckBox() 
{ 
    int num = Request.QueryString["num"]; 
    for (int i = 0; i < num; i++) 
    { 
     foreach (GridViewRow row in gv.Rows) 
     { 
      if (row.RowType == DataControlRowType.DataRow) 
      { 
       CheckBox cb = new CheckBox(); 
       cb.Checked = true;     
       row.Cells[i].Controls.Add(cb); 
      } 
     } 
    } 
} 

現在將此函數放置在您的網格數據綁定事件中。

protected void gv_DataBound(object sender, EventArgs e) 
{ 
    AddCheckBox(); 
} 

末了還呼籲在頁面加載事件的功能,所以第一次,當電網負荷它顯示覆選框被選中

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     AddCheckBox(); 
    } 
} 

要檢查我的代碼: 我添加綁定費爾德到網格視圖和結合網格視圖用的數據表:

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false"> 
    <Columns> 
     <asp:BoundField DataField="Data" HeaderText="Data" /> 
    </Columns> 
</asp:GridView> 

和在後面的代碼在的Page_Load事件我添加以下代碼

DataTable dt = new DataTable(); 
    dt.Columns.Add("Data"); 

    DataRow dr = dt.NewRow(); 
    dr[0] = "Test"; 
    dt.Rows.Add(dr); 

    gv.DataSource = dt; 
    gv.DataBind(); 

和也由在功能AddCheckBox 1個變化爲

for (int i = 1; i < num + 1; i++) 

上面做出改變,因爲我在網格的索引0具有數據綁定費爾德視圖列,所以我把它改爲從1

開始,這裏是結果(頁輸出)

Data Status Status Status Status Status Status Status Status Status Status 
Test Checked Checked Checked Checked Checked Checked Checked Checked Checked Checked 

檢查用於複選框被檢查

+0

非常感謝。非常清楚 – 2012-07-27 13:19:56

+0

@KahnCse不用客氣。也投票了這個答案。 – 2012-07-27 13:20:50

+0

@KahnCse爲什麼你撤銷我接受的答案? – 2012-09-15 13:04:25

0

用途:

Request.QueryString["num"] 

得到的URL num的值。然後迭代num次,每次向GridView添加一個CheckBoxField。