相关的文章有很多
参考一:某一列全部可编辑,也可保存,使用datasource控件
https://www.devexpress.com/Support/Center/Example/Details/E324
演示:http://codecentral.devexpress.com/E324/
下面讲述,某一列部分行不可编辑,其余行可编辑的情况。
aspxgridview可编辑的原因主要是<Columns>中插入了类似于下面的语句:
<dxwgv:GridViewDataTextColumn FieldName="Description" VisibleIndex="2"> <DataItemTemplate> <dxe:ASPxTextBox ID="txtBox" Width="100%" runat="server" Value='<%# Eval("Description")%>'></dxe:ASPxTextBox> </DataItemTemplate> </dxwgv:GridViewDataTextColumn>
这样插入的行全部可以编辑,要是其部分不能编辑。可在后台添加事件:
protected void ASPxGridView1_HtmlDataCellPrepared1(object sender, ASPxGridViewTableDataCellEventArgs e)
{
if (e.DataColumn.FieldName == "Data1")
{
ASPxTextBox textBox = ASPxGridView1.FindRowCellTemplateControl(e.VisibleIndex, e.DataColumn, "ASPxTextBox1") as ASPxTextBox;
//ASPxLabel Label1 = ASPxGridView1.FindRowCellTemplateControl(e.VisibleIndex, e.DataColumn, "ASPxLabel1") as ASPxLabel;
if (ASPxGridView1.GetRowValues(e.VisibleIndex, "Fill").ToString() == "False")
{
textBox.Text = "--";
textBox.Visible = false;
}
}
}
前台主要需要修改的编码如下
<dx:GridViewDataTextColumn VisibleIndex="5" FieldName="Data1" Visible="False" Width="200px"> <DataItemTemplate> <dx:ASPxTextBox ID="ASPxTextBox1" runat="server" Width="100px" Value='<%# Eval("Data1")%>' > <ValidationSettings ValidationGroup="ValueValidationGroup" Display="Dynamic"> <RegularExpression ErrorText="请输入数字!" ValidationExpression="^-?[1-9]+(.d+)?$|^-?0(.d+)?$|^-?[1-9]+[0-9]*(.d+)?$" /> </ValidationSettings> </dx:ASPxTextBox>
其中:vailidation 是对你写入的字进行验证,后台获得验证结果的方式:是在后台代码获得textBox之后,textBox.IsValid 为真验证成功,为假验证失败
参考二:
程序效果:http://codecentral.devexpress.com/E1468/
程序编码:https://www.devexpress.com/Support/Center/Example/Details/E1468
改程序可以前台改变aspxgridview中的一些控件的可用不可用性 值得一看!