express角色管理

钟逸 56 2024-03-09 12:44:25

如何在DevExpress ASPxGridView中进行编辑

展示编辑按钮列

<dxwgv:GridViewCommandColumn VisibleIndex="0">

<EditButton Visible="True" Text="修改"/>

<DeleteButton Visible="true" Text="删除"/>

<NewButton Visible="True" Text="新建"/>

<CancelButton Visible="true" Text="取消"/>

<UpdateButton Visible="true" Text="保存"/>

<ClearFilterButton Visible="true" Text="取消过滤"/>

</dxwgv:GridViewCommandColumn>

编辑视图下控件的外观设置»更多DevExpress开发资源与帮助文档

<dx:GridViewDataMemoColumn... PropertiesMemoEdit-Rows="4" EditFormSettings-ColumnSpan="2"/>

或者

<dxwgv:GridViewDataMemoColumn FieldName="Notes" Visible="False">

<EditFormSettings RowSpan="4" ColumnSpan="2"/>

</dxwgv:GridViewDataMemoColumn>

示例一:绑定到IList并实现删除和修改

<dx:ASPxGridView runat="server" ID="gvImages" KeyFieldName="ImageId"

OnRowDeleting="gvImages_RowDeleting" OnRowUpdating="gvImages_RowUpdating"

>

<SettingsEditing Mode="Inline"/>

<SettingsBehavior ConfirmDelete="true"/>

<Columns>

<dx:GridViewDataColumn FieldName="ImageId" Caption="ID" Visible="false"/>

<dx:GridViewDataImageColumn FieldName="ThumbnailUrl" Caption="缩略图" PropertiesImage-DescriptionUrlField="ImageId"/>

<dx:GridViewDataTextColumn FieldName="Description" Caption="说明"/>

<dx:GridViewDataTextColumn FieldName="Keywords" Caption="关键字"/>

<dx:GridViewCommandColumn Caption="编辑">

<EditButton Visible="True" Text="修改"/>

<DeleteButton Visible="True" Text="删除"/>

<CancelButton Text="取消"/>

<UpdateButton Text="保存"/>

</dx:GridViewCommandColumn>

</Columns>

</dx:ASPxGridView>

//展示

public void ShowArticleImages()

{

int articleId= Convert.ToInt32(Request.QueryString["articleId"]);

IList<BlogArticleImage> images= BlogArticleImage.ListArticleImages(articleId);

this.gvImages.KeyFieldName="ImageId";

this.gvImages.DataSource= images;

this.gvImages.DataBind();

}

//更新

protected void gvImages_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)

{

int id= Convert.ToInt32(e.Keys[0]);

string descript= Convert.ToString(e.NewValues["Description"]);

string keywords= Convert.ToString(e.NewValues["Keywords"]);

BlogArticleImage image= BlogArticleImage.Retrieve(id);

if(image!= null)

{

image.Description= descript;

image.Keywords= keywords;

image.Persist();

}

e.Cancel= true;

gvImages.CancelEdit();

ShowArticleImages();

}

//删除

protected void gvImages_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)

{

int id= Convert.ToInt32(e.Keys[0]);

BlogArticleImage image= BlogArticleImage.Retrieve(id);

if(image!= null)

{

System.IO.File.Delete(Server.MapPath(image.ImageUrl));

System.IO.File.Delete(Server.MapPath(image.ThumbnailUrl));

image.Remove();

}

e.Cancel= true;

gvImages.CancelEdit();

ShowArticleImages();

}

示例二:控件访问权限控制及CRUD操作

<dx:ASPxGridView runat="server" ID="gv" Caption="基础网" KeyFieldName="ID" Width="3000"

OnRowDeleting="gv_RowDeleting" OnRowUpdating="gv_RowUpdating" OnRowInserting="gv_RowInserting"

OnInitNewRow="grid_InitNewRow" onhtmlrowcreated="gv_HtmlRowCreated" OnCellEditorInitialize="grid_CellEditorInitialize"

>

<Columns>

<dx:GridViewCommandColumn Caption="编辑" Width="60">

<EditButton Visible="True" Text="修改"/>

<DeleteButton Visible="true" Text="删除"/>

<NewButton Visible="True" Text="新建"/>

<CancelButton Visible="true" Text="取消"/>

<UpdateButton Visible="true" Text="保存"/>

</dx:GridViewCommandColumn>

<dx:GridViewDataColumn FieldName="ID" Caption="ID"/>

<dx:GridViewDataColumn FieldName="CREATE_DT" Caption="创建时间"/>

<dx:GridViewDataColumn FieldName="CREATOR" Caption="创建人"/>

<dx:GridViewDataComboBoxColumn FieldName="UNIT" Caption="处理单位">

<PropertiesComboBox EnableSynchronization="False" EnableIncrementalFiltering="True" DropDownStyle="DropDown"/>

</dx:GridViewDataComboBoxColumn>

<dx:GridViewDataColumn FieldName="RESULT" Caption="处理结果"/>

<dx:GridViewDataMemoColumn FieldName="ED_CMT" Caption="政企部核对结果" PropertiesMemoEdit-Rows="4" EditFormSettings-ColumnSpan="2"/>

</Columns>

</dx:ASPxGridView>

//普通状态下的命令按钮显隐

protected void gv_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e)

{

if(!gv.IsEditing&& e.RowType== DevExpress.Web.ASPxGridView.GridViewRowType.Data)

{

bool isAdmin= Common.IsInRoles(new string[]{ WZWF.DAL.Roles.Admin});

string unit= gv.GetRowValues(e.VisibleIndex,"UNIT").ToString();

bool isAuth= Common.IsInRoles(

unit,

WZWF.DAL.Roles.EnterpriseDepartment,

WZWF.DAL.Roles.MaintainDepartment

);

//修改按钮

WebControl btnModify= e.Row.Cells[0].Controls[0] as WebControl;

btnModify.Visible= isAuth;

//新建按钮

WebControl btnAddNew= e.Row.Cells[0].Controls[1] as WebControl;

btnAddNew.Visible= isAdmin;

//删除按钮

WebControl btnDelete= e.Row.Cells[0].Controls[2] as WebControl;

btnDelete.Visible= isAdmin;

}

}

//编辑状态下的控件访问权限控制

//管理员:unit, result, md_cmt, ed_cmt

//政企部:ed_cmt

//网络维护部:result, md_cmt

protected void grid_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e)

{

if(gv.IsEditing)

{

//受理单位下拉框

if(e.Column.FieldName=="UNIT")

{

ASPxComboBox combo= e.Editor as ASPxComboBox;

using(DbClean db= new DbClean())

{

combo.DataSource= db.ListUnits();

combo.TextField="ROLE";

combo.ValueField="ROLE";

combo.DataBind();

}

}

//新建状态除了id以外都可以编辑

if(gv.IsNewRowEditing)

{

e.Editor.ReadOnly=(e.Column.FieldName=="ID");

}

//修改状态下根据角色可编辑部分数据

else

{

e.Editor.ReadOnly= true;

if(e.Column.FieldName=="UNIT")

e.Editor.ReadOnly=!Common.IsInRoles(WZWF.DAL.Roles.Admin);

else if(e.Column.FieldName=="RESULT"|| e.Column.FieldName=="MD_CMT")

e.Editor.ReadOnly=!Common.IsInRoles(WZWF.DAL.Roles.Admin, WZWF.DAL.Roles.MaintainDepartment);

else if(e.Column.FieldName=="ED_CMT")

e.Editor.ReadOnly=!Common.IsInRoles(WZWF.DAL.Roles.Admin, WZWF.DAL.Roles.EnterpriseDepartment);

}

}

//可编辑控件设置背景色

e.Editor.BackColor= e.Editor.ReadOnly? Color.White: Color.LightYellow;

}

//删除

protected void gv_RowDeleting(object sender, ASPxDataDeletingEventArgs e)

{

int id= Convert.ToInt32(e.Keys[0]);

using(DbClean db= new DbClean())

db.DelBasicNet(id);

e.Cancel= true;

gv.CancelEdit();

ShowData(ViewState["Unit"].ToString());

}

//更新

protected void gv_RowUpdating(object sender, ASPxDataUpdatingEventArgs e)

{

string unit= Convert.ToString(e.NewValues["UNIT"]);

string result= Convert.ToString(e.NewValues["RESULT"]);

string edCmt= Convert.ToString(e.NewValues["ED_CMT"]);

if(gv.IsEditing)

{

int id= Convert.ToInt32(e.Keys[0]);

using(DbClean db= new DbClean())

db.ModBasicNet(id,...);

}

e.Cancel= true;

gv.CancelEdit();

ShowData(ViewState["Unit"].ToString());

}

//新增

protected void grid_InitNewRow(object sender, ASPxDataInitNewRowEventArgs e)

{

e.NewValues["CREATOR"]= Page.User.Identity.Name;

e.NewValues["CREATE_DT"]= System.DateTime.Now;

}

protected void gv_RowInserting(object sender, ASPxDataInsertingEventArgs e)

{

string unit= Convert.ToString(e.NewValues["UNIT"]);

string result= Convert.ToString(e.NewValues["RESULT"]);

string edCmt= Convert.ToString(e.NewValues["ED_CMT"]);

if(gv.IsNewRowEditing)

{

using(DbClean db= new DbClean())

db.AddBasicNet(.....);

}

e.Cancel= true;

gv.CancelEdit();

ShowData(ViewState["Unit"].ToString());

}

上一篇:nintendoswitch角色
下一篇:王者荣耀保护荆轲副本
相关文章
返回顶部小火箭