解決這個問題 我只找到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;} 也能實現 上述功能 就是沒有提示而已
如果大家知道更多 請留言。一起討論一起進步