65.9K
CodeProject 正在变化。 阅读更多。
Home

在验证或更新时,在 jQuery Repeater 中显示消息

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (2投票s)

2011年11月20日

CPOL

2分钟阅读

viewsIcon

23885

本文将详细解释如何在 Repeater 中提示消息,例如数据下载成功,字段内容不符合要求。

原始文章可以在 这里找到。

简介/目录

由于时间有限,无法保证多篇博文的同步。您可以在以下地址查看最新内容,敬请谅解

下载示例:JQueryElementDemo-en.zip,目录为 /repeater/Default.aspx

本文将详细解释如何在 Repeater 中提示消息,例如数据下载成功,字段内容不符合要求,目录如下:

准备

请查看30 分钟掌握 ASP.NET jQuery Repeater中的准备部分。

设置 TipTemplate

如果您希望 repeater 显示一些消息,首先需要设置 TipTemplate 模板

<TipTemplate>
 <tr>
  <td colspan="6" class="tip">
  @{tip,(++tipCount).toString() + ' :' + @}
  </td>
 </tr>
</TipTemplate>  

在代码中,使用 *`@{<attribute name>[,<attribute expression>]}`* 来绑定属性提示,提示是您需要显示的文本。它类似于绑定字段,除了 # 表示字段,而 @ 表示属性,您可以参考 jQuery Repeater 中绑定和处理 JSON 字段。提示的内容可以来自 showtip 方法,也可以来自 FieldMask 属性。

方法 showtip

使用 <repeater variable>.__repeater('showtip', '<message>')repeater 中显示消息

<je:Repeater ID="orderList" runat="server"
 ...
Filled="
function(pe, e){
 orderList.__repeater('showtip', e.custom.message);
}
" PreUpdate="
function(pe, e){
 orderList.__repeater('showtip', 'Submit data...');
}
" Updated="
function(pe, e){

 if(e.issuccess)
  orderList.__repeater('showtip',
  'Has saved order which id is  ' + e.row.id.toString() +
  ' and sum is ' + e.row.sum.toString());
 else
  orderList.__repeater('showtip',
  'Fail to save order which id is ' + e.row.id.toString());
}
" PreInsert="
function(pe, e){
 orderList.__repeater('showtip', 'Submit data...');
}
" Inserted="
function(pe, e){

 if(e.issuccess)
  orderList.__repeater('showtip',
  'Has created order which id is ' + e.row.id.toString() +
  ' and sum is ' + e.row.sum.toString());
 else
  orderList.__repeater('showtip',
  'Fail to create order which id is ' + e.row.id.toString());
}
">
</je:Repeater>  

在上面的例子中,调用了 showtip 方法,传递要显示的 string ,但在 Filled 属性中,我们传递了 e.custom.message,这是从服务器返回的消息。

属性 FieldMask

FieldMask 用于验证字段,但由于 FieldMask 包含错误消息,因此当存在验证错误时,repeater 将显示错误消息

<script type="text/javascript">
 var mask = {
  amount: {
   type: 'number',
   need: true,
   max: 10,
   min: 1,
   tip: 'Amount required between 1-10'
  },
  price: {
   type: 'number',
   need: true,
   max: 10000,
   min: 1000,
   tip: {
    type: 'Please input a number for price',
    need: 'Please input price',
    max: 'Price cannot exceed 10,000',
    min: 'Price cannot be less than 1000'
   }
  },
  buyer: {
   type: 'string',
   need: true,
   max: 10,
   min: 3,
   tip: 'Length of buyer required between 3-10'
  },
  address: {
   type: 'string',
   min: 1,
   max: 100,
   tip: 'Length of buyer required between 1-100'
  },
  orderdate: {
   type: 'date',
   tip: 'Need a valid date'
  },
  iscompleted: {
   type: 'boolean',
   defaultvalue: false
  }
 };
</script>

<je:Repeater ID="orderList" runat="server"
 ...
 FieldMask="mask"
 ... >

</je:Repeater>  

在代码中,FieldMask 被赋值为变量 mask,mask 包含验证规则,您可以参考字段设置部分,了解 30 分钟掌握 ASP.NET jQuery Repeater

mask 中的提示可以是 string 或包含更具体消息的 object

如果设置了有效的 TipTemplate,则 repeater 会自动完成消息显示。

消息的时效性

当您想要显示新消息,或者 repeater 要重新绑定数据时,原始消息将被替换或隐藏。编辑一行,跳转到下一页,调用 fill 方法给 repeater 重新绑定数据。

注释

© . All rights reserved.