datagrid中数据的批量修改

这个批量修改的思路是这样的直接来图,点击设置上级的时候对选中的checkbox设置下拉列表框里面的上级部门

这是aspx页面代码

<asp:datagrid id="grdOrgGroup" runat="server" Width="100%" CssClass="table" BorderColor="#A0253E"
BorderStyle
="Solid" AutoGenerateColumns="False" BorderWidth="1px">
<AlternatingItemStyle CssClass="tr1"></AlternatingItemStyle>
<ItemStyle CssClass="tr2"></ItemStyle>
<HeaderStyle CssClass="title"></HeaderStyle>
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
<div style="display:none;"><%# Eval("OrgID").ToString()%></div>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn Visible="False" DataField="OrgID" HeaderText="orgid"></asp:BoundColumn>
<asp:BoundColumn DataField="OrgDisplay" HeaderText="部门显示名"></asp:BoundColumn>
<asp:BoundColumn DataField="OrgName" HeaderText="部门名称"></asp:BoundColumn>
<asp:BoundColumn DataField="OrgCode" HeaderText="部门编码"></asp:BoundColumn>
<asp:BoundColumn DataField="UserName" HeaderText="部门经理"></asp:BoundColumn>
<asp:BoundColumn DataField="ParentName" HeaderText="上级部门"></asp:BoundColumn>
<asp:BoundColumn DataField="OrgStatus" HeaderText="部门状态"></asp:BoundColumn>
<asp:BoundColumn DataField="OrgType" HeaderText="部门类别"></asp:BoundColumn>
</Columns>
</asp:datagrid>

后台是通过一个隐藏的Btn的事件来实现数据的批量修改的

protected void btnAddParent_Click(object sender, EventArgs e)
{
COrgSync org
= new COrgSync();
Guid ParentID
= new Guid();
int index = this.ddlOrgSyncChecked.SelectedIndex;
if (index == 0)
{
Page.RegisterStartupScript(
"msg", "<script>alert('请选择分配的上级部门');</script>");
}
else
{
ParentID
= new Guid(this.ddlOrgSyncChecked.SelectedValue);
foreach (DataGridItem dgi in this.grdOrgGroup.Items)
{
CheckBox cb
= (CheckBox)dgi.FindControl("CheckBox1"); //通过控件来获得选中的checkbox
if (cb.Checked) //判断是否选中
{
Guid OrgID
= new Guid(dgi.Cells[1].Text.ToString()); //通过选中的OrgID来批量修改
org.OrgUpdateParentByOrgID(OrgID, ParentID);
}
}
OrgDateBind();
}
}


 

posted @ 2011-07-12 16:13  楼台烟雨  阅读(418)  评论(2)    收藏  举报