2016-12-26 133 views
1

我有一個顯示來自SQL數據源(存儲過程)的數據來一個gridview,我想一個checkboxex列添加到它,這裏是我的代碼:一個複選框列添加到GridView

TemplateField field = new TemplateField(); 
 
field.HeaderText = "Exporter ?"; 
 
gv.Columns.Add(field); 
 
CheckBox cb = new CheckBox(); 
 
cb.Visible = true;

問題是,我不知道如何添加一個複選框到我添加到我的gridview列的TemplateField。

+0

看看這裏:http://stackoverflow.com/questions/12581088/how-to-add-templatefield-programmatically – Mehmet

回答

0

您可以將代碼添加到GridView

<asp:templatefield HeaderText="Check Box"> 
    <itemtemplate> 
     <asp:checkbox ID="cb" runat="server"></asp:checkbox> 
    </itemtemplate> 
</asp:templatefield> 
+0

謝謝,我也希望包含複選框的列在默認情況下不可見,以編程方式使其在運行時可見,我不知道如何做第二部分,因爲我無法將ID屬性添加到templatefield或itemtemplate標籤中? – Platus

+0

我相信** Gounder **有答案。 – Null

1

1)將下面的代碼添加到GridView列中。

<asp:TemplateField HeaderText="CheckBoxColumn" Visible="False"> 
      <ItemTemplate> 
       <asp:CheckBox ID="checkBox" runat="server"></asp:CheckBox>     
      </ItemTemplate> 
</asp:TemplateField> 

2)使複選框列可見動態通過添加OnRowDataBound事件或只是通過GridView.Rows

int indexOfCBColumn = 0; 
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    e.Row.Cells[indexOfCBColumn].Visible = true; 
} 



foreach(GridViewRow row in GridView1.Rows) { 
    if(row.RowType == DataControlRowType.DataRow) { 
     row.Cells[indexOfCBColumn].Visible = true; 
    } 
} 

由於循環!!

相關問題