首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

datagrid内嵌checkbox选中及全选的实现,该如何解决

2012-01-16 
datagrid内嵌checkbox选中及全选的实现datagrid内嵌checkbox选中及全选的实现,各位大侠帮帮忙.感激不尽!以

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();
}











热点排行