Datagrid中的复选框 [英] Checkbox in Datagrid
问题描述
我在这里有一点问题...所以我有一个datagrid ..并且通过将查询传递给数据库将值检索到此数据网格中。我在datagrid中有一个标题复选框来选择或取消选择所有行使用javascript ..并为每一行有一个复选框来检查单个行..现在我想要做的是..当我检查特定行的复选框并点击提交..所选行必须是隐形的..我怎么用C#做这个。请帮帮我...下面是ASP.NET代码
I have a slight problem here...so I have a datagrid..and the values are retrieved into this datagrid by passing a query to the database.I have a header checkbox in the datagrid to select or deselect all the rows using javascript..and for each row there is a checkbox to check the indiviual row..Now what i want to do is..when i check the checkbox of the particular row and hit submit..the selected row must be invisible..how do i do this using C#.Please help me...Below is the ASP.NET code
script type="text/javascript" language="javascript">
function select_deselectAll(chkVal, idVal, AllName, ThisName) {
var frm = document.forms[0];
// Loop through all elements
for (i = 0; i < frm.length; i++) {
if (idVal.indexOf(AllName) != -1) {
if (chkVal == true) {
if (frm.elements[i].id.indexOf(ThisName) != -1) {
frm.elements[i].checked = true;
}
}
else {
if (frm.elements[i].type == "checkbox") {
if (frm.elements[i].id.indexOf(ThisName) != -1) {
frm.elements[i].checked = false;
}
}
}
}
else if (idVal.indexOf(ThisName) != -1) {
if (frm.elements[i].type == "checkbox") {
if (frm.elements[i].id.indexOf(AllName) != -1) {
frm.elements[i].checked = false; break;
}
}
}
}
}
</script>
<asp:DataGrid ID="dgEmpLeaveDetails" runat="server" DataKeyField="reqID"
AutoGenerateColumns="False" CssClass="vutblrow" BorderWidth="1px" PagerStyle-Mode="NumericPages"
Width="100%" TabIndex="6" AllowSorting="false" Visible="True">
<pagerstyle cssclass="pgr" mode="NumericPages" height="25px" borderstyle="Solid" />
<alternatingitemstyle cssclass="vutblaltrow" />
<HeaderStyle CssClass="vutblhdr" />
<itemstyle cssclass="vutblitemrow" />
<columns>
<asp:TemplateColumn>
<HeaderStyle HorizontalAlign="Center" />
<HeaderTemplate>
<asp:CheckBox ID="chkView" runat="server" Text="" onclick="javascript:select_deselectAll (this.checked, this.id, 'chkView', 'cbSelect');" />
</HeaderTemplate>
<itemstyle horizontalalign="Center" />
<itemtemplate>
<asp:CheckBox ID="cbSelect" runat="server" onclick="javascript:select_deselectAll (this.checked, this.id, 'chkView', 'cbSelect');" />
</itemtemplate>
<asp:TemplateColumn HeaderText="Sl No" ItemStyle-CssClass="ing-padding_Right" HeaderStyle-BorderColor="#718bad"
SortExpression="SLNum">
<itemtemplate>
<asp:Label ID="lblSLnum" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "SLNum") %>'>
</itemtemplate>
<asp:TemplateColumn HeaderText="Employee Name" ItemStyle-CssClass="ing-padding_Right"
HeaderStyle-BorderColor="#718bad" SortExpression="EmpName">
<itemtemplate>
<asp:Label ID="lblEmpName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "empName") %>'>
</itemtemplate>
<asp:TemplateColumn HeaderText="Designation" ItemStyle-CssClass="ing-padding_Right"
HeaderStyle-BorderColor="#718bad" SortExpression="Designation">
<itemtemplate>
<asp:Label ID="lbldesign" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "DesigShort") %>'>
</itemtemplate>
<asp:TemplateColumn HeaderText="Date of Move" ItemStyle-CssClass="ing-padding_Right" HeaderStyle-BorderColor="#718bad"
SortExpression="Date of Move">
<itemtemplate>
<asp:Label ID="lblmovedate" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "moveDate","{0:dd/MM/yyyy}") %>'>
</itemtemplate>
<asp:TemplateColumn HeaderText="Establishment to be Visited" ItemStyle-CssClass="ing-padding_Right" HeaderStyle-BorderColor="#718bad">
<itemtemplate>
<asp:Label ID="lblestvisited" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "esttVisited") %>'>
</itemtemplate>
<asp:TemplateColumn HeaderText="Purpose of Move" ItemStyle-CssClass="ing-padding_Right" HeaderStyle-BorderColor="#718bad">
<itemtemplate>
<asp:Label ID="lblpurposemove" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "purpose") %>'>
</itemtemplate>
<asp:TemplateColumn HeaderText="reqID" ItemStyle-CssClass="ing-padding_Right"
HeaderStyle-BorderColor="#718bad" SortExpression="IsActive" Visible="false">
<itemtemplate>
<asp:Label ID="lblreqid" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "reqID") %>'>
</itemtemplate>
<asp:TemplateColumn HeaderText="Is Active" ItemStyle-CssClass="ing-padding_Right"
HeaderStyle-BorderColor="#718bad" SortExpression="IsActive" Visible="false">
<itemtemplate>
<asp:Label ID="lblIsActive" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "IsActive") %>'>
</itemtemplate>
</columns>
推荐答案
使所选DataGrid的行可见= false。
您可以在提交按钮点击活动中尝试以下代码。
To make the selected DataGrid's rows visible = false.
You can try the following code in your Submit Button click event.
foreach (DataGridItem itm in YourDataGrid.Items)
{
CheckBox cb = (CheckBox)itm.FindControl("yourchildcheckboxID");
if (cb.Checked)
{
itm.Visible = false;
}
}
请记住,DataGrid将行作为Items来娱乐,而GridView则将它们视为行。
希望它会有所帮助。 :)
Please Keep in mind that DataGrid's entertain the rows as Items, while GridView entertain them as Rows.
Hope it will help. :)
我没有得到你的代码...
但是我觉得如果我有你的问题...
这是一个例子......
I didn't get your code...
but i think if i got your question...
Here is an Example...
<script type="text/javascript">
function CheckAll(obj) {
var list = document.getElementById("<%=DataGrid1.ClientID%>");
var chklist = list.getElementsByTagName("input");
for (var i = 0; i < chklist.length; i++) {
if (chklist[i].type == "checkbox" && chklist[i] != obj) {
chklist[i].checked = obj.checked;
}
}
}
</script>
用于页眉模板
For Header Template
<HeaderTemplate>
<asp:checkbox id="CheckBox1" onclick="CheckAll(this);" runat="server" xmlns:asp="#unknown" />
</HeaderTemplate>
for item Template
for Item Template
<itemtemplate>
<asp:checkbox id="CheckBox2" runat="server" xmlns:asp="#unknown" />
</itemtemplate>
提交按钮检查 - 如果选中该行的复选框,则执行操作
on Submit Button Check - if checkbox of that row is checked then perform your action
这篇关于Datagrid中的复选框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!