解决这个问题 我只找到2种方法
1. 使用编辑模板项 加入 AspxTextBox 其中有一个属性是Maxliength=“字符数"来控制输入的字符数问题
但是这玩意有个问题(也可能是我没有发现)不能换行
下面是DEMO:
Aspx页面
<EditForm> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td style="width:10%; height: 19px;"><dxe:ASPxLabel Width="100%" ID="EditNoticeBackID" runat="server" Text='<%# Eval("NoticeBackID")%>' Visible="false"></dxe:ASPxLabel></td> <td colspan="3" style="width:70%; height: 19px;"><dxe:ASPxTextBox ID="EditContent" runat="server" Text='<%# Eval("Content")%>' MaxLength='500' Height="10px" Width="471px"></dxe:ASPxTextBox></td> </tr> <tr> <td></td> <td></td> <td style="width:10%"></td> <td style="width:10%"><dxwgv:ASPxGridViewTemplateReplacement ID="UpdateButton" ReplacementType="EditFormUpdateButton" runat="server"></dxwgv:ASPxGridViewTemplateReplacement> <dxwgv:ASPxGridViewTemplateReplacement ID="CancelButton" ReplacementType="EditFormCancelButton" runat="server"></dxwgv:ASPxGridViewTemplateReplacement></td> </tr> </table> </EditForm>
cs页面:
在RowUpdating 事件里写
protected void ASPxGridView1_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) { ASPxTextBox EditContent = ASPxGridView1.FindEditFormTemplateControl("EditContent") as ASPxTextBox; ASPxLabel EditNoticeBackID = ASPxGridView1.FindEditFormTemplateControl("EditNoticeBackID") as ASPxLabel; e.NewValues["Content"] = EditContent.Text; e.NewValues["NoticeBackID"] = int.Parse(EditNoticeBackID.Text); }
第二个 制作自定义异常 扔到页面上显示
同样也是在在RowUpdating 事件里写
if(e.NewValues["列名"].ToString().Length>100)
{throw new InvalidOperationException("你要定义的异常");)
不过这有个弊端 在DEBUG的时候会弹出 未捕获异常 不要管 直接运行 就能显示的问题
如果还嫌麻烦
if(e.NewValues["列名"].ToString().Length>100)
{e.Cancel=true;} 也能实现 上述功能 就是没有提示而已
如果大家知道更多 请留言。一起讨论一起进步