gridview 增加自定义列和抬头
我需要在gridview的结尾增加一个复选框用于选中(为了测试多个自定义列,增加一个文本框列),除了可以用代码控制之外,在源码页面也可以实现:
效果如下图:
源代码如下:
<!--
要添加多个自定义列的话,声明多个asp:TemplateField 即可
-->
<asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False"
BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px"
CellPadding="4" DataKeyNames="dp_id" DataSourceID="SqlDataSource1" ForeColor="Black"
GridLines="Vertical">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="dp_id" HeaderText="dp_id" ReadOnly="True" SortExpression="dp_id" />
<asp:BoundField DataField="dp_name" HeaderText="dp_name" SortExpression="dp_name" />
<asp:BoundField DataField="cost_center" HeaderText="cost_center" SortExpression="cost_center" />
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:TemplateField>
<HeaderTemplate>
复选框头
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox runat="server" ID="cbx1" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
文本头
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox runat="server" ID="tbx1" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#CCCC99" />
<HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
<RowStyle BackColor="#F7F7DE" />
<SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#FBFBF2" />
<SortedAscendingHeaderStyle BackColor="#848384" />
<SortedDescendingCellStyle BackColor="#EAEAD3" />
<SortedDescendingHeaderStyle BackColor="#575357" />
</asp:GridView>
如何获得选中checkbox所在行的部门名称?
protected void Button1_Click(object sender, EventArgs e)
{
String str = "";
foreach(GridViewRow row in GridView1.Rows){
//注意:这里是ItemTemplate里声明的id名称
CheckBox ckb = (CheckBox)row.FindControl("cbx1");
if (ckb.Checked) {
str += row.Cells[1].Text;
}
}
Response.Write(str);
}
持续学习、持续收获才能带来持续的满足和快乐!
浙公网安备 33010602011771号