在验证或更新时,在 jQuery Repeater 中显示消息
本文将详细解释如何在 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
重新绑定数据。