GridView与CheckBox
来源:互联网 发布:国内程序员大牛 编辑:程序博客网 时间:2024/05/21 19:47
<asp:GridView ID="gridFlow" DataKeyNames="id" runat="server" AutoGenerateColumns="False" CellPadding="4"
ForeColor="Black" GridLines="Vertical" Width="100%" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CaptionAlign="Left" ShowFooter="True" AllowPaging="True" OnPageIndexChanging="gridFlow_PageIndexChanging" OnRowDataBound="gridFlow_RowDataBound" PageSize="20" OnDataBinding="gridFlow_DataBinding">
<FooterStyle BackColor="#CCCC99" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
<HeaderTemplate>
<input id="CheckAll" type="checkbox" onclick="selectAll(this);" />
</HeaderTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Flow_Main_Date" HeaderText="录入日期" />
<asp:BoundField DataField="Flow_Account_Name" HeaderText="帐户" />
<asp:BoundField DataField="Flow_Class_Name" HeaderText="类别"/>
<asp:BoundField DataField="Flow_Main_Income" HeaderText="增加" />
<asp:BoundField DataField="Flow_Main_Expense" HeaderText="减少" />
<asp:BoundField DataField="Flow_Family_Name" HeaderText="人员" />
<asp:BoundField DataField="Flow_Main_Info" HeaderText="摘要" />
</Columns>
<RowStyle BackColor="#F7F7DE" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
<HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
<PagerSettings Mode="NumericFirstLast" NextPageText="[下一页]" PreviousPageText="[上一页]" />
</asp:GridView>
ForeColor="Black" GridLines="Vertical" Width="100%" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CaptionAlign="Left" ShowFooter="True" AllowPaging="True" OnPageIndexChanging="gridFlow_PageIndexChanging" OnRowDataBound="gridFlow_RowDataBound" PageSize="20" OnDataBinding="gridFlow_DataBinding">
<FooterStyle BackColor="#CCCC99" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
<HeaderTemplate>
<input id="CheckAll" type="checkbox" onclick="selectAll(this);" />
</HeaderTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Flow_Main_Date" HeaderText="录入日期" />
<asp:BoundField DataField="Flow_Account_Name" HeaderText="帐户" />
<asp:BoundField DataField="Flow_Class_Name" HeaderText="类别"/>
<asp:BoundField DataField="Flow_Main_Income" HeaderText="增加" />
<asp:BoundField DataField="Flow_Main_Expense" HeaderText="减少" />
<asp:BoundField DataField="Flow_Family_Name" HeaderText="人员" />
<asp:BoundField DataField="Flow_Main_Info" HeaderText="摘要" />
</Columns>
<RowStyle BackColor="#F7F7DE" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
<HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
<PagerSettings Mode="NumericFirstLast" NextPageText="[下一页]" PreviousPageText="[上一页]" />
</asp:GridView>
/**//// <summary>
/// 获取或设置选中项的集合
/// </summary>
protected ArrayList SelectedItems
...{
get
...{
return (ViewState["mySelectedItems"] != null) ? (ArrayList)ViewState["mySelectedItems"] : null;
}
set
...{
ViewState["mySelectedItems"] = value;
}
}
/**//// <summary>
/// 从当前页收集选中项的情况
/// </summary>
protected void CollectSelected()
...{
ArrayList selectedItems = null;
if (this.SelectedItems == null)
selectedItems = new ArrayList();
else
selectedItems = this.SelectedItems;
for (int i = 0; i < this.gridFlow.Rows.Count; i++)
...{
// string id = this.gridFlow.Rows[i].Cells[1].Text;
string id = gridFlow.DataKeys[i].Value.ToString();
CheckBox cb = this.gridFlow.Rows[i].FindControl("CheckBox1") as CheckBox;
if (selectedItems.Contains(id) && !cb.Checked)
selectedItems.Remove(id);
if (!selectedItems.Contains(id) && cb.Checked)
selectedItems.Add(id);
}
this.SelectedItems = selectedItems;
}
protected void gridFlow_DataBinding(object sender, EventArgs e)
...{
//在每一次重新绑定之前,需要调用CollectSelected方法从当前页收集选中项的情况
CollectSelected();
}
protected void gridFlow_RowDataBound(object sender, GridViewRowEventArgs e)
...{
//这里的处理是为了回显之前选中的情况
if (e.Row.RowIndex > -1 && this.SelectedItems != null)
...{
DataRowView row = e.Row.DataItem as DataRowView;
CheckBox cb = e.Row.FindControl("CheckBox1") as CheckBox;
if (this.SelectedItems.Contains(row["id"].ToString()))
cb.Checked = true;
else
cb.Checked = false;
}
}
/**//// <summary>
/// 删除选中项的记录
/// </summary>
protected void btnDel_Click(object sender, EventArgs e)
...{
//最后,需要对选中项进行操作之前,不能忘了还要最后一次收集当前页的选中情况
CollectSelected();
string tempSelected = string.Empty;
foreach (object tmp in this.SelectedItems)
tempSelected += tmp.ToString() + ",";
tempSelected = tempSelected.Remove((tempSelected.Length - 1), 1);
int result;
string errmsg = string.Empty;
result = ModuleSql.SqlDelete("Flow_Main", "id in (" + tempSelected + ")", ref errmsg);
if (result == 0x0)
...{
// 成功
ShowMessage(UrlCurrentPage, app.MessageDefaultStayTime, "删除成功");
}
else
...{
ShowMessage(errmsg, app.MessageDefaultStayTime, errmsg);//错误提示
}
}
/// 获取或设置选中项的集合
/// </summary>
protected ArrayList SelectedItems
...{
get
...{
return (ViewState["mySelectedItems"] != null) ? (ArrayList)ViewState["mySelectedItems"] : null;
}
set
...{
ViewState["mySelectedItems"] = value;
}
}
/**//// <summary>
/// 从当前页收集选中项的情况
/// </summary>
protected void CollectSelected()
...{
ArrayList selectedItems = null;
if (this.SelectedItems == null)
selectedItems = new ArrayList();
else
selectedItems = this.SelectedItems;
for (int i = 0; i < this.gridFlow.Rows.Count; i++)
...{
// string id = this.gridFlow.Rows[i].Cells[1].Text;
string id = gridFlow.DataKeys[i].Value.ToString();
CheckBox cb = this.gridFlow.Rows[i].FindControl("CheckBox1") as CheckBox;
if (selectedItems.Contains(id) && !cb.Checked)
selectedItems.Remove(id);
if (!selectedItems.Contains(id) && cb.Checked)
selectedItems.Add(id);
}
this.SelectedItems = selectedItems;
}
protected void gridFlow_DataBinding(object sender, EventArgs e)
...{
//在每一次重新绑定之前,需要调用CollectSelected方法从当前页收集选中项的情况
CollectSelected();
}
protected void gridFlow_RowDataBound(object sender, GridViewRowEventArgs e)
...{
//这里的处理是为了回显之前选中的情况
if (e.Row.RowIndex > -1 && this.SelectedItems != null)
...{
DataRowView row = e.Row.DataItem as DataRowView;
CheckBox cb = e.Row.FindControl("CheckBox1") as CheckBox;
if (this.SelectedItems.Contains(row["id"].ToString()))
cb.Checked = true;
else
cb.Checked = false;
}
}
/**//// <summary>
/// 删除选中项的记录
/// </summary>
protected void btnDel_Click(object sender, EventArgs e)
...{
//最后,需要对选中项进行操作之前,不能忘了还要最后一次收集当前页的选中情况
CollectSelected();
string tempSelected = string.Empty;
foreach (object tmp in this.SelectedItems)
tempSelected += tmp.ToString() + ",";
tempSelected = tempSelected.Remove((tempSelected.Length - 1), 1);
int result;
string errmsg = string.Empty;
result = ModuleSql.SqlDelete("Flow_Main", "id in (" + tempSelected + ")", ref errmsg);
if (result == 0x0)
...{
// 成功
ShowMessage(UrlCurrentPage, app.MessageDefaultStayTime, "删除成功");
}
else
...{
ShowMessage(errmsg, app.MessageDefaultStayTime, errmsg);//错误提示
}
}
- gridview 与 checkbox
- GridView与CheckBox
- GridView与CheckBox结合(VB.NET)
- GridView控件与CheckBox结合,实现…
- Android开发GridView与CheckBox使用
- gridview+checkbox
- gridview checkbox
- GridView CheckBox
- GridView 与CheckBox 结合使用全选的问题
- GridView与CheckBox结合实现多选删除
- ASP.NET Gridview与checkbox全选、全不选实现代码
- gridview控件和checkbox
- GridView和CheckBox结合
- GridView嵌套CheckBox
- Checkbox选择全部(GridView)
- GridView And CheckBox
- GridView和CheckBox结合
- GridView客户端checkbox全选
- GUIXML 的 JavaScript Engine 更新列表 Until Apr. 14.
- linux解决中文乱码
- C初学者应该怎么走?
- 九层之台,起于垒土
- 要一颗平常心,时刻保持好自己的状态
- GridView与CheckBox
- 百度酝酿进军网游 迈向“全业务”
- Spring的Bean工厂
- 头一遭
- 传统数据库的操作
- 我的lomboz老出现WAR,为什么?
- 连接池的工作原理及分类
- ASP编程基础
- Visual C++ 异常模型【En】