仙境传说猎人加点方案
0
2025 / 06 / 21
展示编辑按钮列
<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());
}