datagrid内嵌checkbox选中及全选的实现
datagrid内嵌checkbox选中及全选的实现,各位大侠帮帮忙.感激不尽!
以后有恩抱恩,没恩送分.
[解决办法]
http://www.aspxboy.com/private/2780/default.aspx
[解决办法]
- HTML code
function selectAll(obj) { var theTable = obj.parentElement.parentElement.parentElement; var i; var j = obj.parentElement.cellIndex; for(i=0;i<theTable.rows.length;i++) { var objCheckBox = theTable.rows[i].cells[j].firstChild; if(objCheckBox.checked!=null)objCheckBox.checked = obj.checked; } }<ItemTemplate> <asp:CheckBox ID="chbCheck" runat="server" /></ItemTemplate><HeaderTemplate> <asp:CheckBox ID="chbCheckHeader" onclick="selectAll(this);" AutoPostBack="false" runat="server" /></HeaderTemplate>
[解决办法]
你可以分在前台和后台。
于后台的在此先放一下,一下如何在前台操作.
效果可以考很多网站。比如迅雷的首,分作了"全(全部中)"和"全消(全部不)"按.
段代的可以考一下:
- JScript code
function checkAll(checkedValue){ for(var i=0;i<document.getElementsByName("chk").length;i++) { var thisCheckBox=document.getElementsByName("chk")[i]; thisCheckBox.checked=checkedValue; }}
[解决办法]
<asp:DataGrid ID="dgCart" runat="server" AutoGenerateColumns="False" Font-Size="8pt"
CellPadding="4" Width="98%" ForeColor="#333333" GridLines="None">
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" BackColor="#5D7B9D"
Font-Bold="True" Height="25px" ForeColor="White"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="删除">
<ItemTemplate>
<center>
<asp:CheckBox ID="chkProductID" runat="server" />
</center>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="PName" HeaderText="商品名称" />
<asp:HyperLinkColumn DataNavigateUrlField="pid" DataNavigateUrlFormatString="../shop/product.aspx?pID={0}"
HeaderText="查看" Text="查看"></asp:HyperLinkColumn>
<asp:BoundColumn DataField="PPrice" HeaderText="单价" />
<asp:TemplateColumn HeaderText="数量">
<ItemTemplate>
<asp:TextBox ID="txtCount" Width="50" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"PCount")%>' />
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="PTotal" HeaderText="小计(元)" />
<asp:BoundColumn DataField="count" HeaderText="积分" />
<asp:BoundColumn DataField="Post" HeaderText="邮费"></asp:BoundColumn>
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditItemStyle BackColor="#999999" />
<SelectedItemStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<AlternatingItemStyle BackColor="White" ForeColor="#284775" />
<ItemStyle BackColor="#F7F6F3" ForeColor="#333333" />
</asp:DataGrid>
int i, j;
DataGridItem item;
string[] delItem = new string[5];
j = 0;
for (i = 0; i <= dgCart.Items.Count - 1; i++)
{
item = dgCart.Items[i];
TextBox CountText = (TextBox)item.FindControl("txtCount");
CheckBox chkDel = (CheckBox)item.FindControl("chkProductID");
if (chkDel.Checked)
{
delItem[j] = i.ToString();
j = j + 1;
}
Cart.Rows[i][3] = CountText.Text;
Cart.Rows[i][4] = Convert.ToDouble(Cart.Rows[i][2]) * Convert.ToDouble(Cart.Rows[i][3]);
Cart.Rows[i][8] = Convert.ToInt32(Cart.Rows[i][3]) * Convert.ToInt32(Cart.Rows[i][7]);
}
for (i = 0; i <= j - 1; i++)
{
int delI = Convert.ToInt32(delItem[i]);
Cart.Rows[delI].Delete();
}
[解决办法]
<asp:DataGrid ID="dgCart" runat="server" AutoGenerateColumns="False" Font-Size="8pt"
CellPadding="4" Width="98%" ForeColor="#333333" GridLines="None">
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" BackColor="#5D7B9D"
Font-Bold="True" Height="25px" ForeColor="White"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="删除">
<ItemTemplate>
<center>
<asp:CheckBox ID="chkProductID" runat="server" />
</center>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="PName" HeaderText="商品名称" />
<asp:HyperLinkColumn DataNavigateUrlField="pid" DataNavigateUrlFormatString="../shop/product.aspx?pID={0}"
HeaderText="查看" Text="查看"></asp:HyperLinkColumn>
<asp:BoundColumn DataField="PPrice" HeaderText="单价" />
<asp:TemplateColumn HeaderText="数量">
<ItemTemplate>
<asp:TextBox ID="txtCount" Width="50" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"PCount")%>' />
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="PTotal" HeaderText="小计(元)" />
<asp:BoundColumn DataField="count" HeaderText="积分" />
<asp:BoundColumn DataField="Post" HeaderText="邮费"></asp:BoundColumn>
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditItemStyle BackColor="#999999" />
<SelectedItemStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<AlternatingItemStyle BackColor="White" ForeColor="#284775" />
<ItemStyle BackColor="#F7F6F3" ForeColor="#333333" />
</asp:DataGrid>
int i, j;
DataGridItem item;
string[] delItem = new string[5];
j = 0;
for (i = 0; i <= dgCart.Items.Count - 1; i++)
{
item = dgCart.Items[i];
TextBox CountText = (TextBox)item.FindControl("txtCount");
CheckBox chkDel = (CheckBox)item.FindControl("chkProductID");
if (chkDel.Checked)
{
delItem[j] = i.ToString();
j = j + 1;
}
Cart.Rows[i][3] = CountText.Text;
Cart.Rows[i][4] = Convert.ToDouble(Cart.Rows[i][2]) * Convert.ToDouble(Cart.Rows[i][3]);
Cart.Rows[i][8] = Convert.ToInt32(Cart.Rows[i][3]) * Convert.ToInt32(Cart.Rows[i][7]);
}
for (i = 0; i <= j - 1; i++)
{
int delI = Convert.ToInt32(delItem[i]);
Cart.Rows[delI].Delete();
}